我在javascript中有一个函数,它应该输入输入到输入字段的文本。 我的代码:
<head>
<script type="text/javascript">
function calculate()
{
var input = document.body.childNodes[1];
document.write(input.value);
}
</script>
</head>
<body>
<input type="text"/>
<input type="button" onclick="calculate()"/>
</body>
现在我不明白为什么我必须将索引“1”放入我的childNodes数组中?逻辑上它应该是“0”,因为<input type="text"/>
是身体的第一个孩子。
答案 0 :(得分:1)
DOM规范要求HTML中的节点之间的空格应该在childNodes列表中作为文本节点预先发布。所以使用HTML
<div id="parent"><div>child 1</div> abc <div>child2</div></div> </div>
我们希望父div的子节点是
如果您只想获取元素节点而不是文本节点,请在循环时检查子节点的nodeType属性(元素为1,文本节点为3,IIRC)或使用“children”数组“childNodes”。
请注意,较旧的浏览器可能无法实现子数组,并且迭代通过childNodes时Internet Explorer可能不会显示空白节点。
答案 1 :(得分:0)
不,第一个孩子在某些只有空白区域的浏览器中是文本节点。但您可以使用Element.firstElementChild