我正在创建一个javascript函数,它将在页面中找到一个锚点(特别是使用,而不是id),然后遍历它的父级,直到它到达包含某个类的锚点。我使用了以下代码,它在Firefox3.0中运行良好,但在Firefox3.5和Internet Explorer8的getAttribute中都失败了。
var tab = document.getElementsByName(headerName).item(0);
while (tab.getAttribute('class') != 'card') {
tab = tab.parentNode;
}我知道这在jQuery中很容易,但我受到很大的限制。在这些新浏览器中,getAttribute发生了怎样的变化?我能做些什么来解决这个问题?
发布于 2009-06-26 19:50:05
试试tab.className
发布于 2009-06-26 20:31:30
所以我的第一个猜测是,如果.className不返回任何内容,那么tab是未定义的。
我在想是不是出了什么问题
document.getElementsByName(headerName).item(0);使用Firebug在while循环上设置断点,然后在控制台中键入“Tab键”并按Enter键。如果没有适用于FF 3.5的Firebug。尝试使用它来找到其他方法来获取所需的元素。
发布于 2010-12-03 07:43:39
document.getElementsByName()在IE中不起作用。
http://webbugtrack.blogspot.com/2007/08/bug-411-getelementsbyname-doesnt-work.html
根据web标准,该函数应该返回具有给定"name“属性值的所有元素,或者只返回表单的输入元素。
http://www.w3.org/TR/DOM-Level-2-HTML/html.html#ID-71555259
http://www.w3.org/TR/xhtml1/#h-4.10
也许,为“类”属性指定名称并使用document.getElementsByTagName()可以迭代文档的特定元素,但是扫描给定类型的所有标记会很慢。
https://stackoverflow.com/questions/1050869
复制相似问题