getAttribute出现初学者Javascript错误

getAttribute出现初学者Javascript错误,javascript,getattribute,Javascript,Getattribute,我在google和stackoverflow上搜索了不少,但是由于缺乏关于如何提问的知识(或者即使我问的是正确的问题),因此很难找到相关信息 我有一个简单的代码块,我正在用它来自学javascript var studio = document.getElementById('studio'); var contact = document.getElementById('contact'); var nav = document.getElementById('nav'); var navLi

我在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#没有方法“getAttribute”

我不知道哪里出了问题

navLinks的nodetype和nodevalue返回为未定义,我相信这可能是问题的一部分,但我对这一点非常陌生,我真的不知道。

该方法返回一个对象数组。因此,您需要循环此数组以获取单个元素及其属性:

var navLinks = nav.getElementsByTagName('a');
for (var i = 0; i < navLinks.length; i++) {
    var link = navLinks[i];
    var title = link.title;
}
var-navLinks=nav.getElementsByTagName('a');
对于(var i=0;i
调用
nav.getElementsByTagName('a')
返回对象列表。并且该列表没有getAttribute()方法。你必须在一个对象上调用它

当您这样做时:

navLinks[0].getAttribute('title')
然后它应该会工作-您将获得第一个匹配元素的标题

var navLinks = nav.getElementsByTagName('a');
getElementsByTagName
返回多个元素(因此
elements
),因为一个页面上可能有多个元素具有相同的标记名。
NodeList
(由
getElementsByTagName
返回的节点集合)没有
getAttribute
方法

您需要访问实际需要的元素的属性。我猜这将是你找到的第一个元素

var title = navLinks[0].getAttribute('title');

谢谢,就这样。非常感谢,因为在我决定在这里注册并寻求一些答案之前,我已经在这里坐了很长时间了。getElementsByTagName返回一个节点列表,它不是数组。请参见不要对标准HTML属性使用getAttribute,请使用相关的DOM属性,以便
var title=navLinks[0]。title
。它速度更快,输入更少,并且消除了getAttribute中的浏览器差异。