2016-10-22 72 views
1

我的JavaScript初学者和需要你的帮助与下面的查询:添加属性的元素的Javascript

我必须找到放置在导航标签在HTML里的所有。现在,我必须检查li是否具有数据方向属性,如果不具有 - 将此属性设置为“top”。我试图用简单的循环来做,但它似乎并没有工作 - 我一直从控制台获取“方向未定义”的信息,因此它看起来没有看到“数据方向”作为属性。也许我应该用不同的方式表示这个属性这里是我的代码:

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或空字符串,因此您需要使用hasAttribute()方法来处理空大小写。

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