javascript获取多个name相同的div对象
<divname="my_div"></div><divname="my_div"></div><divname="my_div"></div><divname="my_...
<div name="my_div"></div>
<div name="my_div"></div>
<div name="my_div"></div>
<div name="my_div"></div>
如上所示,如何用JavaScript获取name='my_div'的div对象,
注意! 不是用jQuery获取,是JavaScript
var tags = document.getElementsByName("my_div") ;
alert(tags.length);
为什么打印出来的是0?希望你们测试下,再给答案,谢谢了 展开
<div name="my_div"></div>
<div name="my_div"></div>
<div name="my_div"></div>
如上所示,如何用JavaScript获取name='my_div'的div对象,
注意! 不是用jQuery获取,是JavaScript
var tags = document.getElementsByName("my_div") ;
alert(tags.length);
为什么打印出来的是0?希望你们测试下,再给答案,谢谢了 展开
8个回答
展开全部
这个javascript 原生中有自带的。document.getElementsByName();
下面是代码:
<body>
<div name = "div"></div>
<div name = "div"></div>
<div name = "div"></div>
<div name = "div"></div>
<div name = "div"></div>
</body>
<script>
alert(document.getElementsByName('div').length); //结果是:5.如果想对每个div进行操作,就需要用for循环了。
var aDiv = document.getElementsByName('div');
for(var i=0;i<aDiv.length;i++){
aDiv[i].onclick = function(){
console.log('aaa'); //点击每个div都会console出一个'aaa'
}
}
</script>
展开全部
估计你是在IE里测试的(用其它浏览器应该是没问题的),针对IE出现的这种情况:IE中你必须给对象加上同样的ID 即 id="my_div"。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
关于['name']索引方式应该注意的几个问题是 :
1. IE返回一个HTMLCollection集合(IE大概认为如果查找的元素集合中有表单元素,且name可能会出现重复.那么返回值就应该是一个集合.而不是单一元素.),且非表单元素name会被无视.
2.FireFox 和 opera 浏览器会 无视document.compatMode ,无视id或name,无视是否为表单元素,仅找出第一个符合 id或name任意一个为索引或namedItem()参数的元素.
3.webkit浏览器则无视document.compatMode,无视id,无视name,无视是否为表单元素,而仅仅找出id符合的元素.
1. IE返回一个HTMLCollection集合(IE大概认为如果查找的元素集合中有表单元素,且name可能会出现重复.那么返回值就应该是一个集合.而不是单一元素.),且非表单元素name会被无视.
2.FireFox 和 opera 浏览器会 无视document.compatMode ,无视id或name,无视是否为表单元素,仅找出第一个符合 id或name任意一个为索引或namedItem()参数的元素.
3.webkit浏览器则无视document.compatMode,无视id,无视name,无视是否为表单元素,而仅仅找出id符合的元素.
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
document.getElementsByName("my_div")
sholy529的s敲错地方了 ^_^
sholy529的s敲错地方了 ^_^
更多追问追答
追问
var tags = document.getElementsByName("my_div") ;
alert(tags.length);
为什么打印出来的是0?希望你们测试下,再给答案,谢谢了
追答
查了下手册,getElementsByName()不能提取没有name属性的标签。div标签本身没有name属性,所以不能被提取。有name标签的主要是各种input标签,所以默认情况下getElementsByName()只能提取同名的input标签。
但是,另一方面,getElementsByName()不仅仅能提取有name属性的标签,同时还包括了id属性为指定名称的标签,所以你把你的div的name换成id,可以得到想要的结果。
如果一定要用name来实现,只有自己编程,如下面的getDivsByName()函数所示:
mydiv
name
function getDivsByName(sname){
var t = document.all ;
var divs=new Array();
for(var i=0;i
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
关于['name']索引方式应该注意的几个问题是 :
1. IE返回一个HTMLCollection集合(IE大概认为如果查找的元素集合中有表单元素,且name可能会出现重复.那么返回值就应该是一个集合.而不是单一元素.),且非表单元素name会被无视.
2.FireFox 和 opera 浏览器会 无视document.compatMode ,无视id或name,无视是否为表单元素,仅找出第一个符合 id或name任意一个为索引或namedItem()参数的元素.
3.webkit浏览器则无视document.compatMode,无视id,无视name,无视是否为表单元素,而仅仅找出id符合的元素.
1. IE返回一个HTMLCollection集合(IE大概认为如果查找的元素集合中有表单元素,且name可能会出现重复.那么返回值就应该是一个集合.而不是单一元素.),且非表单元素name会被无视.
2.FireFox 和 opera 浏览器会 无视document.compatMode ,无视id或name,无视是否为表单元素,仅找出第一个符合 id或name任意一个为索引或namedItem()参数的元素.
3.webkit浏览器则无视document.compatMode,无视id,无视name,无视是否为表单元素,而仅仅找出id符合的元素.
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询