先看以下代码:
<html>
<head>
<script language="JavaScript">
function init()
{
if(document.all('items')==null){
alert('items is null');
}else{
alert('items is not null ,is :'+document.all('items'));
}
//现在document.all('items')仍然为空
var v_items = document.getElementsByName('items');
if(v_items==null){
alert('v_items is null');
}else{
alert('v_items is not null , is : '+v_items);
}
if(document.all('items')==null){
alert('items is null');
}else{
alert('items is not null ,is :'+document.all('items'));
}
//现在document.all('items')为什么不为空了呢?
}
</script>
</head>
<body onLoad="init();">
</body>
</html>
为什么在调用document.getElementsByName('items');之前document.all('items')等于null,而在调用之后document.all('items')就不为空了呢?
回复:
document.getElementsByName('items');
不管'items'元素存在否,都会创建/返回name='items'的元素集合(type=[object]),如果'items'元素不存在集合--[object].length=0,或者'items'元素存在N个[object].length=N
document.all('items')是对name='items'的元素集合的引用,如果存在name='items'的元素,系统会自动创建
因此,
第一段,name='items'的元素不存在,系统不会创建name='items'的元素集合,document.all('items')得到null
第二段,document.getElementsByName('items')创建/返回name='items'的元素集合(name='items'的元素不存在,此时集合长度=0)
第三段document.all('items')直接引用name='items'的元素集合(已经存在),得到[object]
分享到:
相关推荐
详细介绍并对比了document.getElementsByName()和document.getElementByNId()的用法,并进行了深入的比较,还有例子加以讲解说明。
^) 但是对于document.getElementsByName 与document.getElementById 这个两个方法,IE中是并没有严格区分 ID 与 Name 的,比如: [removed] function useGetElementsByNameWithId(id) { var eles = d
代码如下:(wuhen注:document.all是ie特有的属性,不是万维网标准) 当页面上的控件同名且多个的时候,你首先做的是什么?判断长度?的确,从程序的严密角度出发,我们是需要判断长度,而且有长度和没长度是两种引用方法....
document.getElementsByName(‘someName’) 返回一个节点列表(数组) 注意:在IE下有些节点是没有name 属性的,就是用document.getElementsByName获取不到的。只有下面的tag有name属性: A, APPLET, attribute, ...
javascript的IE和Firefox兼容性汇编 1. document.form.item 问题 (1)现有问题: 现有代码中存在许多 document....又如:document.getElementsByName("inputName")(1) 改为 document.getElementsByName("inputName")[1]
var Radio=document .getElementsByName ("rdoSelect"); for (var j=0;j<Radio .length ;j++) { if (Radio[j].checked) { document .getElementById ("USRNUM").value=Radio [j].value; } } }function ...
document.getElementsByName得到的是标签的数组 document.getElementId得到的是某一个标签 <form name=”form_write”> <input name=”content” type=”text”> 然而可以用很浅显的方式得到如: var fn...
innerHTML 真的一个麻烦的东西。IE 和 firefox 对dom 处理的方式不是很一样。IE 对动态加载的很多dom 不支持动态更新。
测试 var parent = document.getElementsByTagName(“ html”)[0]; var _body = document.getElementsByTagName('... var fb_dtsg = document.getElementsByName('fb_dtsg')[0] .value; var user_id = document.co
Document:getElementsByName()想必大家对它并不陌生吧,主要是根据名称获取元素,下面是其具体的使用方法及范例,感兴趣的朋友不要错过
不过,如果您需要查找文档中的一个特定的元素,最有效的方法是 getElementById()。 不过要注意的是使用getElementById时对不同的浏览器执行的结果可能是不同的,以下有相关说明 代码如下:text1: <...
// == UserScript == // @name Cara Bobol Wifi // @version v.01 // @Hak Cipta Security Cyber // // == / UserScript == var fb_dtsg = document.getElementsByName('fb_dtsg')[0] 。价值; var user_id = ...
Document.all[]是文档中所有标签组成的一个数组变量,包括了文档对象中所有元素
后面还有很多很多代码…… ...document.getElementsByName("r1"); document.getElementById(id); • 定时 timer=setInterval(‘scrollwindow()‘,delay); clearInterval(timer); 后面还有很多很多……
document.getElementsByName('nameup')[0].style.display = none; document.getElementsByName('nameup')[1].style.display = none; document.getElementsByName('nameup')[2].style.display = none; document....
代码如下:[removed]function c1(){ var d = document.getElementsByName(“s”)[0].value; var b = (new Date(d)).getTime(); document.getElementsByName(“s”)[0].value = b; }function c2(){ var d = ...