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?希望你们测试下,再给答案,谢谢了
展开
 我来答
百度网友2571d37bb
推荐于2017-09-10 · 知道合伙人软件行家
百度网友2571d37bb
知道合伙人软件行家
采纳数:1971 获赞数:7905
前端工程师

向TA提问 私信TA
展开全部

这个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>
woshixindong
2012-03-19 · TA获得超过432个赞
知道小有建树答主
回答量:268
采纳率:100%
帮助的人:304万
展开全部
估计你是在IE里测试的(用其它浏览器应该是没问题的),针对IE出现的这种情况:IE中你必须给对象加上同样的ID 即 id="my_div"。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
chenguang5092
2012-03-19 · TA获得超过664个赞
知道小有建树答主
回答量:520
采纳率:50%
帮助的人:451万
展开全部
关于['name']索引方式应该注意的几个问题是 :
1. IE返回一个HTMLCollection集合(IE大概认为如果查找的元素集合中有表单元素,且name可能会出现重复.那么返回值就应该是一个集合.而不是单一元素.),且非表单元素name会被无视.

2.FireFox 和 opera 浏览器会 无视document.compatMode ,无视id或name,无视是否为表单元素,仅找出第一个符合 id或name任意一个为索引或namedItem()参数的元素.

3.webkit浏览器则无视document.compatMode,无视id,无视name,无视是否为表单元素,而仅仅找出id符合的元素.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
hutaoooooo
推荐于2017-10-04 · TA获得超过441个赞
知道小有建树答主
回答量:747
采纳率:0%
帮助的人:362万
展开全部
document.getElementsByName("my_div")
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
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
郭某人来此
2015-10-07 · TA获得超过1645个赞
知道答主
回答量:952
采纳率:100%
帮助的人:85.9万
展开全部
关于['name']索引方式应该注意的几个问题是 :
1. IE返回一个HTMLCollection集合(IE大概认为如果查找的元素集合中有表单元素,且name可能会出现重复.那么返回值就应该是一个集合.而不是单一元素.),且非表单元素name会被无视.

2.FireFox 和 opera 浏览器会 无视document.compatMode ,无视id或name,无视是否为表单元素,仅找出第一个符合 id或name任意一个为索引或namedItem()参数的元素.

3.webkit浏览器则无视document.compatMode,无视id,无视name,无视是否为表单元素,而仅仅找出id符合的元素.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(6)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式