2016-10-22 4 views
1

要素に属性を追加します。今私は、liがデータ方向の属性を持っているかどうかを調べなければならない。もしそうでなければ、この属性を "top"に設定しなければならない。私は単純なループを使ってやろうとしましたが、うまくいかないようです - コンソールから「方向は定義されていません」という情報を得続けますので、属性として「データ方向」が見えないようです。たぶん私はこの属性を違うものにするべきでしょうか?ここに私のコードです:は、私はJavaScriptのbegginerだと以下のクエリを使用してあなたの助けを使用することができますJavascriptを

var navLi = document.querySelectorAll("nav li"); 

    for (i = 0; i < navLi.length; i++) { 
     if (navLi[i].data-direction === " ") { 
     navLi[i].data-direction = "top"; 
     } 
    } 

ありがとうございます!

答えて

2

あなたが探しているのはhasAttribute()/setAttribute()です。

for (i = 0; i < navLi.length; i++) { 
    if (!navLi[i].hasAttribute('data-direction')) { 
    navLi[i].setAttribute('data-direction', 'top') 
    } 
} 
0

getAttribute()はnullまたは空の文字列を返します。したがって、nullの場合を処理するためにhasAttribute()メソッドを使用する必要があります。

for (var item of document.querySelectorAll("nav li")) { 
    if (!item.hasAttribute("data-direction") || item.getAttribute("data-direction").trim() === "") { 
    item.setAttribute("data-direction", "top"); 
    } 
} 
関連する問題