getElementsByName不支持div标签吗

为什么用input标签oUploadImage.length就显示8,而用div就只显示0<script>functionmyname(){varoUploadImage... 为什么用input标签oUploadImage.length就显示8,而用div就只显示0
<script>
function myname() {
var oUploadImage = document.getElementsByName("dx");
//if (!oUploadImage) {
alert(oUploadImage.length);
// return false;

//}
}
function myok() {
var oUploadImage = document.getElementsByName("ok");
//if (!oUploadImage) {
alert(oUploadImage.length);
// return false;

//}
}
</script>
</head>
<body>
<input type=text value="dddd" name="dx" />
<input type=text value="dddd" name="dx" />
<input type=text value="dddd" name="dx" />
<input type=text value="dddd" name="dx" />
<input type=text value="dddd" name="dx" />
<input type=text value="dddd" name="dx" />
<input type=text value="dddd" name="dx" />
<input type=text value="dddd" name="dx" />
<div name="ok" >ok</div>
<div name="ok" >ok</div>
<div name="ok" >ok</div>
<div name="ok" >ok</div>
<div name="ok" >ok</div>
<div name="ok" >ok</div>
<div name="ok" >ok</div>
<input type=button onclick="myname()" value="ddddd" />
<input type=button onclick="myok()" value="ooooook" />
</body>
展开
 我来答
364761308
2011-09-24 · TA获得超过708个赞
知道小有建树答主
回答量:369
采纳率:0%
帮助的人:492万
展开全部
楼主写网页代码还在用IE浏览器测试,有点跟不上时代了啊。
getElementsByName本身在不同的浏览器行为不一样。

首先说说name属性,name属性是input标签的内建属性,早期浏览器的getElementsByName方法是为了方便的获取用户的输入。由于name只是input的内建属性,其它标签没有,所以getElementsByName方法不能在别的标签中识别这一属性,因此getElementsByName方法只能用于input标签,这也就是为什么你getElementsByName(‘ok’)得不到任何值的原因。或许是因为很多人像楼主这样使用getElementsByName方法,浏览器厂商意识到这个方法可以扩展,因此在新版浏览器中(我说的是新版浏览器,任何国内厂商的浏览器都不新(除了傲游3),百度浏览器发布的时候就落后了,腾讯的浏览器实在太垃圾,不要提360浏览器,就是一幌子,傲游3浏览器算是新的,不过也不好用)添加了这个功能,所以楼上的答案没有错,只是需要在新版浏览器中才可以用。
在旧的IE系列浏览器getElementsByName方法确实不支持除input以外的标签
QQ__421199698
2011-09-25 · TA获得超过248个赞
知道答主
回答量:498
采纳率:0%
帮助的人:237万
展开全部

getElementsByName是根据标签的name属性来拿的
getElementsByTagName是根据标签名来拿

getElementsByName()
这个是通过NAME来获得元素,但不知大家注意没有,这个是GET ELEMENTS,复数ELEMENTS代表获得的不是一个元素,为什么呢?
因为DOCUMENT中每一个元素的ID是唯一的,但NAME却可以重复。打个比喻就像人的身份证号是唯一的(理论上,虽然现实中有重复),但名字

重复的却很多。如果一个文档中有两个以上的标签NAME相同,那么getElementsByName()就可以取得这些元素组成一个数组。

比如有两个DIV:
<div name="docname" id="docid1"></div>
<div name="docname" id="docid2"></div>
那么可以用getElementsByName("docname")获得这两个DIV,用getElementsByName("docname")[0]访问第一个DIV,用getElementsByName

getElementsByTagName()
这个呢就是通过TAGNAME(标签名称)来获得元素,一个DOCUMENT中当然会有相同的标签,所以这个方法也是取得一个数组。
下面这个例子有两个DIV,可以用getElementsByTagName("div")来访问它们,用getElementsByTagName("div")[0]访问第一个DIV,用

getElementsByTagName("div")[1]访问第二个DIV。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
wswhk
2011-09-24 · TA获得超过7.1万个赞
知道顶级答主
回答量:4.6万
采纳率:68%
帮助的人:7.4亿
展开全部
不行 name属性本来就没被设计用在div里面 所以不要随便给div加name 你可以用class等代替
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
Syscolor
2011-09-24 · TA获得超过482个赞
知道小有建树答主
回答量:1144
采纳率:0%
帮助的人:549万
展开全部
document.getElementsByName("dx")[0]
或者
document.getElementsByName("dx").item(0)
追问
你说的方法不行
并且oUploadImage.length总是等于0
oUploadImage[0]总是等于undefined
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
余大侠钓鱼
2011-09-24 · TA获得超过149个赞
知道答主
回答量:78
采纳率:0%
帮助的人:77.4万
展开全部
你好,你的代码没有错误,不仅是getElementsByName不支持div,getElementsByTag同样也不支持的!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式