Edición JavaScript Traverse tabla
-
23-09-2019 - |
Pregunta
¿Por qué este script rescatar a (IE) o una memoria (FF) en la primera celda de la tabla que contiene el texto que se encuentra?
<!html>
<head>
<script type="text/javascript">
function CheckChildren(obj)
{
alert(obj.id + ' ' + obj.tagName + ' ' + obj.childNodes.length);
for ( i = 0; i < obj.childNodes.length; i++)
{
CheckChildren(obj.childNodes[i]);
}
alert(obj.id);
return false;
}
</script>
</head>
<body>
<table id="table">
<tr id="a"><td id="b">b</td><td id="c">c</td></tr>
<tr id="d"><td id="e">e</td><td id="f">f</td></tr>
</table>
<input type="button" onclick="CheckChildren(document.getElementById('table'))" value="click">
</body>
</html>
Solución
Trate de poner la palabra "var" antes de la "i" en su bucle.
for ( var i = 0; i < obj.childNodes.length; i++)
Sin eso, el código se refiere a una variable global "i", por lo que cada iteración conjuntos recursivos de nuevo a cero.
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow