初学者 Javascript 中 getAttribute 的错误
2011-07-17
7875
我在 google 和 stackoverflow 上搜索了很多,但由于缺乏有关如何提问的知识(或者甚至不知道我是否在问正确的问题),因此很难找到相关信息。
我有一段简单的代码块,我正在尝试用它来自学 javascript。
var studio = document.getElementById('studio');
var contact = document.getElementById('contact');
var nav = document.getElementById('nav');
var navLinks = nav.getElementsByTagName('a');
var title = navLinks.getAttribute('title');
我想从 ID 为“nav”的元素中的链接中获取 title 属性。
每当我查看调试器时,它都会告诉我
Object #<NodeList> 没有方法“getAttribute”
我不知道我哪里做错了。
navLinks 的节点类型和节点值返回为未定义,我相信这可能是问题的一部分,但我对此很陌生,老实说,我完全不知道。
3个回答
getElementsByTagName
方法返回一个对象数组。因此,您需要循环遍历此数组以获取各个元素及其属性:
var navLinks = nav.getElementsByTagName('a');
for (var i = 0; i < navLinks.length; i++) {
var link = navLinks[i];
var title = link.title;
}
Darin Dimitrov
2011-07-17
调用
nav.getElementsByTagName('a')
返回对象列表。并且该列表没有 getAttribute() 方法。您必须在一个对象上调用它。
当您执行:
navLinks[0].getAttribute('title')
然后它应该可以工作 - 您将获得第一个匹配元素的标题。
Radek
2011-07-17
var navLinks = nav.getElementsByTagName('a');
getElementsByTagName
返回多个元素(因此为
Elements
),因为一个页面上可能有多个元素具有相同的标签名称。
NodeList
(由
getElementsByTagName
返回的节点集合)没有
getAttribute
方法。
您需要访问您实际需要的元素的属性。我猜这将是您找到的第一个元素。
var title = navLinks[0].getAttribute('title');
lonesomeday
2011-07-17