簡體   English   中英

getAttribute 的初學者 Javascript 錯誤

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM