-1
我有這個腳本,我正在運行。這表明getAttribute屬性在164行是未定義的。我不明白爲什麼。我試着回溯各種函數調用來尋找突破,但我沒有看到它爲什麼getAttribute沒有定義?
我有這個腳本,我正在運行。這表明getAttribute屬性在164行是未定義的。我不明白爲什麼。我試着回溯各種函數調用來尋找突破,但我沒有看到它爲什麼getAttribute沒有定義?
你mouseleave
事件偵聽器總是要擁有album-view-song-item
的event.target.className
因爲songRows
被定義爲document.getElementsByClassName("album-view-song-item");
因此,當getSongItem(event.target)
被聽者內調用:
songRows[i].addEventListener("mouseleave", function(event) {
var songItem = getSongItem(event.target);
var songItemNumber = songItem.getAttribute("data-song-number");
if (songItemNumber !== currentlyPlayingSong){
songItem.innerHTML = songItemNumber;
}
});
Ť他element.className
是album-view-song-item
。當這傳遞到你的功能:
var getSongItem = function(element){
switch(element.className){
case "album-song-button":
case "ion-play":
case "ion-pause":
return findParentByClassName(element, "song-item-number");
case "song-item-title":
case "song-item-duration":
return findParentByClassName(element, "album-view-song-item").querySelector(".song-item-number");
case "song-item-number":
return element;
default:
return;
}
};
這一直落入default
情況,它返回undefined。調用getAttribute
未定義,如你所見,給你錯誤Cannot read property 'getAttribute' of undefined
你可以嘗試'console.log(songItem)'在第163行和164行之間,並告訴我你是否顯示錯誤 – Ivan
@Ivan Seconded。最合理的解釋是'songItem'是'undefined'或錯誤的類型,比如'false'。 –
您正在查看此屬性的控件是否包含該屬性。檢查html源代碼。 – Amit