我正在尝试创建一个功能,如果我单击未触及的跨度,它将变为如此,反之亦然。我尝试创建一个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=""
}
})
}
编辑:当我点击跨度时,没有任何反应。
答案 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");
});
}
不要在你的逻辑中混合演示文稿。