javascript获取多个name相同的div对象

<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?希望你们测试下,再给答案,谢谢了

这个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>
温馨提示:内容为网友见解,仅供参考
第1个回答  2012-03-19
估计你是在IE里测试的(用其它浏览器应该是没问题的),针对IE出现的这种情况:IE中你必须给对象加上同样的ID 即 id="my_div"。
第2个回答  2012-03-19
关于['name']索引方式应该注意的几个问题是 :
1. IE返回一个HTMLCollection集合(IE大概认为如果查找的元素集合中有表单元素,且name可能会出现重复.那么返回值就应该是一个集合.而不是单一元素.),且非表单元素name会被无视.

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

3.webkit浏览器则无视document.compatMode,无视id,无视name,无视是否为表单元素,而仅仅找出id符合的元素.
第3个回答  推荐于2017-10-04
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

追问

呵呵 问题已经解决了,我自己写了个方法,跟你上面所说 getDivByName()差不多,不过还是谢谢了

本回答被提问者采纳
第4个回答  2015-10-07
关于['name']索引方式应该注意的几个问题是 :
1. IE返回一个HTMLCollection集合(IE大概认为如果查找的元素集合中有表单元素,且name可能会出现重复.那么返回值就应该是一个集合.而不是单一元素.),且非表单元素name会被无视.

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

3.webkit浏览器则无视document.compatMode,无视id,无视name,无视是否为表单元素,而仅仅找出id符合的元素.

javascript怎么获取div下name相同值的个数?
document.getElementsByName("yourName").length

求js代码,同时替换多个ID相同的DIV的内容
id的值只能是唯一的.所以一个网页中不能出现两个或以上的相同id.改用name吧 <div name="date"><\/div> <div name="date"><\/div> <div name="date"><\/div> <div name="date"><\/div> <script language='javascript'> var myDate = new Date();var localDate = myDate.toLocaleDateStr...

关于JS获取多个div下多个img的src的问题
回答:百度搜搜可以搜到

JS或JQ里怎么获取到多个id相同的标签内的数字进行比大小?
js中如何获取一个id的值:方法一、这是获取网页input值的方法之一,给from一个名字然后在JavaScript的地方就可以用form的名字来调用form表单里input元素的value属性可以得到值,并把值赋给a,最后用JavaScript的alert()打印方法打印出来。方法二、Java代码上面的两种方法都可以得到页面里input元素的值,一个...

javascript怎么获取div id或者class
取得DIV对象以事取ID或CLASS就简单了.var id=div.id;var class=div.className;就这么简单.下面有个例子,如果不懂,随时问我 <html> <head> <script> function a(){ var div=document.getElementById('a');alert('div的class为:'+div.id)alert('div的id为:'+div.className)} function b()...

关于JS获取多个div下多个img的src的问题
info"> <a href="#"> <img class="marginImg" src="aaa.jpg" \/><\/a> <span style="padding-top: 5">... <\/span> <\/div> <div class="info"> <a href="#"> <img class="marginImg" src="bbb.jpg" \/><\/a> <span ...

javascript怎么添加与前div相同的内容并且放在前div的后面
javascript添加与前div相同的内容并且放在前div的后面的完整解决方法是:创建元素、插入元素完成要求。完整处理代码是:<div id=”divs”>。<div id=”div1″>div1<\/div>。<div id=”div2″>div2<\/div>。<\/div>。<script>。var oDivs=document.getElementById(‘divs’)。var oDiv2=document....

如何用JavaScript获取<div>*<\/div>标签中的内容?
给div赋个ID属性 比如 <div id="div1"><img src="aa.img" alt="" \/><\/div> var restring=document.getElementById("div1").innerHTML 返回的是<img src="aa.img" alt="" \/>

javascript.中。如何给多个元素添加同一个JS事件
\/\/获取所有的div for(var i = 0; i<divs.length; i++) {\/\/循环让每个div都有效果 divs[i].onmouseover = function(){ this.style.opacity = 0.5; } divs[i].onmouseout =function(){ this.style.opacity = 1; } }}<\/script><\/body><\/html> ...

javascript 怎么遍历外层div里的多个div?
你好!!你是想要遍历(id为starsDiv)这个DIV的内部的div么?document.getElementById() 这个是根据ID来获取元素。document.getElementsByTagName() 这个是根据html标记来获取元素数组,注意Element是复数形式 var _starsDiv = document.getElementById("starsDiv"), _childrenDiv = _starsDiv.getEl...

相似回答