日期:2014-05-16  浏览次数:20362 次

JS取DOM的问题,请高手指点。
JScript code

<HTML>
 <HEAD>
<SCRIPT LANGUAGE="JavaScript">
<!--
    var items = document.getElementsByName("selectThings");
    alert(items.length);
//-->
</SCRIPT>
 <BODY>
  <input type="checkbox" name="selectThings" value="" onclick="selectCheck(this)" />selectThings</br>
  <input type="checkbox" name="selectThings" value="" onclick="selectCheck(this)" />selectThings</br>
  <input type="checkbox" name="selectThings" value="" onclick="selectCheck(this)" />selectThings</br>
  <input type="checkbox" name="selectThings" value="" onclick="selectCheck(this)" />selectThings</br>
  <input type="checkbox" name="selectThings" value="" onclick="selectCheck(this)" />selectThings</br>
 </BODY>
 <SCRIPT LANGUAGE="JavaScript">
 <!--
    alert(items.length);
 //-->
 </SCRIPT>
</HTML>


以上代码,初始化执行结果是第一个alert出0,第二个alert出5.有人知道为什么吗?

------解决方案--------------------
探讨
你要明白js是解释语言,加载到哪就运行到哪。在没有输出input前你就统计长度,所以是0 等后面已经加载了input所以就显示了5

------解决方案--------------------
探讨

就算是保存引用,难道说浏览器在加载HTML的时候还会来改变JS变量里的值?

------解决方案--------------------
应该是调用length属性的时候,就去会执行先前定义好的document.getElementsByName("selectThings")
------解决方案--------------------

还没结贴呢,1楼和5楼都说那么清楚了的呀

Lz,你的问题在于你没有理解到代码的含义
JScript code
var items = document.getElementsByName("selectThings").length;
alert(items);