[英]Beginner Javascript error with getAttribute
我在 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”的元素中的鏈接中獲取標題屬性。
每當我查看調試器時,它都會告訴我Object #<NodeList> has no method 'getAttribute'
我不知道我哪里出錯了。
navLinks 的節點類型和節點值返回為未定義,我認為這可能是問題的一部分,但我對此很陌生,老實說我不知道。
getElementsByTagName
方法返回一個對象數組。 因此,您需要遍歷此數組以獲取各個元素及其屬性:
var navLinks = nav.getElementsByTagName('a');
for (var i = 0; i < navLinks.length; i++) {
var link = navLinks[i];
var title = link.title;
}
調用nav.getElementsByTagName('a')
返回對象列表。 而且該列表沒有 getAttribute() 方法。 您必須在 ONE object 上調用它。
當你這樣做時:
navLinks[0].getAttribute('title')
那么它應該可以工作 - 您將獲得第一個匹配元素的標題。
var navLinks = nav.getElementsByTagName('a');
getElementsByTagName
返回多個元素(因此Elements
),因為一個頁面上可以有多個元素具有相同的標簽名稱。 NodeList
(它是由getElementsByTagName
返回的節點集合)沒有getAttribute
方法。
您需要訪問您實際需要的元素的屬性。 我的猜測是,這將是您找到的第一個元素。
var title = navLinks[0].getAttribute('title');
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.