La propiedad childrenNodes incluye todos los tipos de nodos: TEXT_NODE, EL EMENT_NODE, COMMEN_NODE, etc ....
Debe contar el número de elementos, aquí es an example solution basado en DOM que debería funcionar en todos los sistemas:
var temp = document.getElementById('element').parentNode;
var children = temp.childNodes;
console.log(children.length); // 7
function countElements(children) {
var count=0;
for (var i=0, m=children.length; i<m; i++)
if (children[i].nodeType===document.ELEMENT_NODE)
count++;
return count;
}
console.info(countElements (children)); // 3
EDITAR
Del mismo modo si desea una función para recuperar todos los elementos secundarios solo con DOM, aquí hay una función:
function childElements(node) {
var elems = new Array();
var children = node.childNodes;
for (var i=0,i < children.length ; i++) {
if (children[i].nodeType===document.ELEMENT_NODE) {
elems.push(children[i]);
return elems;
}
}
}
console.info(childElements(temp).length); //3
posible duplicado de [usar JavaScript para contar elementos secundarios inmediatos de un elemento] (http://stackoverflow.com/questions/5685184/use-javascript-to-count-immediate-child-elements-of- un elemento) - utilice la búsqueda antes de hacer una nueva pregunta. –
Te acepto ... Pero necesito javascript puro no responda jquery –
Si lees la respuesta detenidamente, verás que no usa jQuery en absoluto/ –