如何编写if语句来检查样式属性是否包含任何内容?

时间:2016-06-15 10:48:15

标签: javascript if-statement dom javascript-events javascript-objects

我正在尝试创建一个功能,如果我单击未触及的跨度,它将变为如此,反之亦然。我尝试创建一个if语句,它将使用console.dir(x)时返回的属性的确切值。在textDecoration的情况下,我得到textDecoration:""。我怎样才能在id语句中反映这一点?

var x = document.querySelectorAll("span")

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

    x[i].addEventListener("click", function(){

        if(this.style.textDecoration=""){

            this.style.textDecoration="line-through"
        }
        else{

            this.style.textDecoration=""
        }
})
}

编辑:当我点击跨度时,没有任何反应。

1 个答案:

答案 0 :(得分:1)

您正在观察的问题是因为您在if语句(赋值)中使用=而不是=====(等式检查)。

然而

更好的解决方案是在CSS文件中添加新的类规则:

.lineThrough {
  text-decoration: line-through;
}

然后在您的JavaScript文件中,只需切换类:

var x = document.querySelectorAll("span");

for(var i=0; i<x.length;i++){
    x[i].addEventListener("click", function(){
        this.classList.toggle("lineThrough");
    });
}

不要在你的逻辑中混合演示文稿。