J'ai un problème avec childNodes
comme ci-dessous:
<ol> <li>Coffee</li> <li>Tea</li> <li>Coca Cola</li> </ol> //childNodes.length = 7
mais
<ol><li> Coffee </li><li> Tea </li><li> Coca Cola </li></ol> //childNodes.length = 3
Il semble que chaque \n
ou textnode
soit considéré comme un child
, comment puis-je les supprimer de childNodes
?
Vous pouvez vérifier si un nœud enfant donné est un nœud de texte ou si vous n'utilisez pas nodeType
. Les nœuds de texte auront le nodeType
comme 3
. Nous pouvons utiliser le numéro ou le Node.TEXT_NODE
constant pour la vérification.
window.onload = function() { var el = document.getElementsByTagName('ol')[0].childNodes; // using [0] as there is only one ol in the demo console.log('Print with text nodes'); for (var i = 0; i < el.length; i++) { // will output all nodes with "undefined" for text nodes console.log(el[i].innerHTML); } console.log('Print without text nodes'); for (var i = 0; i < el.length; i++) { // will output only non text nodes. if (el[i].nodeType != Node.TEXT_NODE) // or if (el[i].nodeType != 3) console.log(el[i].innerHTML); } }
<ol> <li>Coffee</li> <li>Tea</li> <li>Coca Cola</li> </ol>
Essayez d'utiliser la méthode jquery children
$("#test").children().size()