getAttribute出现初学者Javascript错误
我在google和stackoverflow上搜索了不少,但是由于缺乏关于如何提问的知识(或者即使我问的是正确的问题),因此很难找到相关信息 我有一个简单的代码块,我正在用它来自学javascriptgetAttribute出现初学者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
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中的浏览器差异。