gpt4 book ai didi

javascript - 为什么这个 childNodes 会给我那个奇怪的输出?

转载 作者:行者123 更新时间:2023-11-28 09:44:23 26 4
gpt4 key购买 nike

为什么当我记录特定节点列表中所有节点的 tagName 时,它会给我这个重复的 undefined 反馈?

这是我从中提取节点的代码部分:

index.html

<form name="contactForm" id="contactForm">
<div id="textInfo">
<ul>
<li>
<label for="firstName" class="mainLabel">First Name : </label>
<input type="text" name="firstName" id="firstName"/>
<span>This must be filled</span>
</li>
<li>
<label for="lastName" class="mainLabel">Last Name : </label>
<input type="text" name="lastName" id="lastName"></input>
<span>This must be filled</span>
</li>
<li>
<label for="email" class="mainLabel">E-mail : </label>
<input type="email" name="email" id="email"></input>
<span>This must be filled</span>
</li>
</ul>
</div>​

script.js

var myForm = document.forms["contactForm"];
eventUtil.add(myForm, "submit" , function(evt){
var firstName = myForm.elements["firstName"];

if(firstName.value == ""){
for(i=0; i < firstName.parentNode.childNodes.length ; i++){
console.log("childNodes[" + i + "]: " + firstName.parentNode.childNodes[i].tagName);
}
eventUtil.preventDefault(evt);
}
});

输出是:

childNodes[0]: undefined
childNodes[1]: LABEL
childNodes[2]: undefined
childNodes[3]: INPUT
childNodes[4]: undefined
childNodes[5]: SPAN
childNodes[6]: undefined

为什么它反复给我undefined输出?

最佳答案

for(i=0; i < firstName.parentNode.childNodes.length ; i++){
var currNode=firstName.parentNode.childNodes[i];
if(currNode.nodeType==1){
console.log("childNodes[" + i + "]: " + currNode.tagName);
}
}

您可以检查nodeType (Node.ELEMENT_NODE == 1) 以仅选择元素。

关于javascript - 为什么这个 childNodes 会给我那个奇怪的输出?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12009329/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com