您的位置:首页 > 其它

document.all与getElementById、getElementsByName、getElementsByTagName用法区别-getElementById

2008-12-18 16:08 1121 查看
HTML DOM 定义了多种查找元素的方法,除了 getElementById() 之外,还有 getElementsByName() 和 getElementsByTagName()。

不过,如果您需要查找文档中的一个特定的元素,最有效的方法是 getElementById()。
不过要注意的是使用getElementById时对不同的浏览器执行的结果可能是不同的,以下链接有相关说明
http://blog.csdn.net/mmcgzs/archive/2007/03/25/1540250.aspx
以下是我测试所用的代码:

<html>
<head>
<title>
document.all test
</title>
<script language="javascript">
function view()
{
var obj = document.getElementById("ccc");
alert(obj.value);
obj = document.getElementById("aaa");
alert(obj.value);

}
</script>
</head>
<body>
<form name="form1" id="f1">

<!--<input type="text" name="aaa" >-->
<input type="text" name="aaa" id="ccc" >
<input type="text" name="ccc" id="aaa">

<input type="button" name="bbb" value="click" onclick="view();">
</form>
</body>

</html>
这个时候我在两个text中输入的值分别为:eee, wwwIE中测试结果为:eee , eee
再看当我把<input type="text" name="aaa" id="ccc" >中的id去除时,也即上面代码使用注释中的内容时
我同样输入eee, www
IE中测试结果为:www ,eee
仔细分析上面两个测试的结果:得出结论是:每执行getElementById一次,会将web页面中的所有表单按顺序遍历一次,同时查找id,name两个值,如果存在所要找的id则不再继续查找,如果没有相应的id与之对应则看name值是否与之对应,如果有相应的name与之对应,则不再继续查找。也就是说:
ie执行document.getElementById(elementName)的时候,返回的是第一个name或者id等于elementName的对象,并不是仅按照ID来查找的。

而同样的两个测试在firefox下第一个结果为eee,www,而第二个结果因为没有找到id="ccc"所以返回null

对于这个结果还可参见blog:
/article/4757748.html
他还对getElementById与getElementByName进行了分析,值得一看。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐