簡體   English   中英

javascript無法調用getElementsByTagName中未定義的方法

[英]javascript Cannot call method undefined in getElementsByTagName

我試圖學習javascript,而不使用jQuery和其他。

我遇到此錯誤:無法調用未定義的方法'getElementsByTagName'

我知道錯誤的問題所在,但不知道如何解決。 將來如何避免該錯誤?

   var menu = document.getElementsByClassName("menu-item");
    var i;
    for (i = 0; i < menu.length; i = i + 1) {
      menu[i].addEventListener("mouseenter", function () {
        setInterval(function(){
          menu[i].getElementsByTagName("a").css("color","red")
        },5000)
      })
    }

實際上,代碼存在更深層的問題。 循環運行時不會調用setInterval的函數。 循環完成后將調用它。 因此,當它被調用時, i將具有menu.length的值,因此位於數組之外。 要解決此問題,請嘗試以下操作:(提琴: http : //jsfiddle.net/bKY9y/5/

var menu = document.getElementsByClassName("menu-item");
console.log(menu);

for (var i = 0; i<menu.length; i++)
{

    console.log(menu[i].addEventListener)
    menu[i].addEventListener("mouseover",function () {
        var obj = this;
        setTimeout(function(){
            console.log(obj);
            var a = obj.getElementsByTagName("a");
            for (var j = 0; j < a.length; j++){
                a[j].style.color = "red";
            }          
        },1000)
      })
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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