我想知道 .childNodes
属性,我有下面的代码,出于某种原因我有 18 个 child ,而 6 个是预期的 HTMLInputElement
,其余的是 undefined
。这是关于什么的?是否有一种有效的方法来迭代 input
元素?
<html>
<head>
<script>
window.onload = function(e){
form = document.getElementById('myForm');
alert(form.childNodes.length);
for(i=0; i<form.childNodes.length; i++){
alert(form[i]);
}
}
</script>
</head>
<body>
<form id='myForm' action="haha" method="post">
Name: <input type="text" id="fnameAdd" name="name" /><br />
Phone1: <input type="text" id="phone1Add" name="phone1" /><br />
Phone2: <input type="text" id="phone2Add" name="phone2" /><br />
E-Mail: <input type="text" id="emailAdd" name="email" /><br />
Address: <input type="text" id="addressAdd" name="address" /><br />
<input type="submit" value="Save" />
</body>
</html>
最佳答案
文本节点,即使它们只包含空格,也将包含在输出中,br
元素也是如此。
如果您想要所有元素,包括 br
,请改用 .children
。这只会给你元素节点。我认为较旧的 IE 不正确地包含注释节点,但您的代码中没有注释节点,所以没问题。
或者你可以做...
form.getElementsByTagName('input')
...假设您只需要 input
元素。
除此之外:您忘记关闭您的 form
元素。
关于javascript - 使用 `.childNodes` 从 javascript 访问 HTML DOM 元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10097797/