问答详情
源自:9-2 getElementsByName()方法

求教,为什么不把函数放在function里就无法出来正确结果?

<!DOCTYPE html>

<html>

<head>

<meta charset="UTF-8">

<title>GET Name</title>

<script>

var pick=document.getElementsByName("myt");

alert(pick.length);

</script>

</head>

<body>

<input name="myt" type="text" value="1">

<input name="myt" type="text" value="2">

<input name="myt" type="text" value="3">

<input name="myt" type="text" value="4">

<input name="myt" type="text" value="5">

<input name="myt" type="text" value="6">

</body>

</html>

求教,为什么必须要把这段代码放在function里去再用onclick去执行呢,这样出来结果一直是0,放在function里再加个onclick的按钮才能出来结果为6

提问者:Lotusm 2018-08-06 19:08

个回答

  • 沐沐26
    2018-08-06 21:09:57
    已采纳

    放在head中的script代码会在页面加载完成之前就读取(而放在body的会在整个页面加载完之后读取),这时候那些<input>还没有定义呢,个数当然是0,而用onclick调用函数的时候<input>已经定义好了所以个数是6。如果实在不想用onclick可以把你的script代码块放在body中,而且是6个<input>的后面,因为是按顺序执行的