栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

IE7中的getElementsByName

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

IE7中的getElementsByName

如果您不知道为什么这在IE中不起作用,请参见该函数的MSDN文档:

使用getElementsByName方法时,将返回文档中具有指定NAME属性或ID属性值的所有元素。

同时支持NAME属性和ID属性的元素包含在getElementsByName方法返回的集合中,但是具有NAME
expando的元素不包含在该集合中。因此,该方法不能用于按名称检索自定义标签。

Firefox允许

getElementsByName()
检索使用NAMEexpando的元素,这就是它起作用的原因。这是否是一件好事™尚待辩论,但这就是事实。

因此,一种选择是使用

getAttribute()
DOM方法询问NAME属性,然后测试该值以查看它是否是您想要的,如果是,则将其添加到数组中。但是,这将需要您遍历页面中或至少在子节中的所有节点,而这并不是最有效的。您可以通过使用诸如此类的方法预先约束该列表
getElementsByTagName()

如果您可以控制页面的HTML,则另一种方法是给所有感兴趣的元素提供一个ID,该ID仅随数字而变化,例如:

<div id="Change0">...</div><div id="Change1">...</div><div id="Change2">...</div><div id="Change3">...</div>

然后使用如下Javascript:

// assumes consecutive numbering, starting at 0function getElementsByModifiedId(baseIdentifier) {    var allWantedElements = [];    var idMod = 0;    while(document.getElementById(baseIdentifier + idMod)) { // will stop when it can't find any more        allWantedElements.push(document.getElementById(baseIdentifier + idMod++));    }    return allWantedElements;}// call it like so:var changes = getElementsByModifiedId("Change");

当然,这是一种黑客手段,但是它可以完成您所需的工作,并且与其他一些黑客工具相比,效率不会太低。

如果您使用某种Javascript框架/工具包,那么您的选择会更好一些,但是除非您指出您正在使用,否则我没有时间来讨论这些细节。就个人而言,我不知道没有人的人如何生活,他们节省了太多的时间,精力和挫折感,以至于您负担不起
使用一个人的负担。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/614762.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号