Javascript 如何编写if语句来检查样式属性是否不包含任何内容?
我试着做一个功能,如果我点击一个没有被击中的跨度,它就会变成这样,反之亦然。我尝试使用if语句,为使用Javascript 如何编写if语句来检查样式属性是否不包含任何内容?,javascript,if-statement,dom,javascript-objects,dom-events,Javascript,If Statement,Dom,Javascript Objects,Dom Events,我试着做一个功能,如果我点击一个没有被击中的跨度,它就会变成这样,反之亦然。我尝试使用if语句,为使用console.dir(x)时返回的属性提供准确的值。在textdearching的情况下,我得到textdearching:“。我怎样才能在id声明中反映这一点 var x = document.querySelectorAll("span") for(var i=0; i<x.length;i++){ x[i].addEventListener("click", funct
console.dir(x)
时返回的属性提供准确的值。在textdearching的情况下,我得到textdearching:“
。我怎样才能在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=""
}
})
}
var x=document.querySelectorAll(“span”)
对于(var i=0;i您观察到的问题是因为您在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");
});
}
var x=document.querySelectorAll(“span”);
对于(var i=0;i您所拥有的有什么问题?如果(this.style.textdeaction=”“)这是一个赋值,而不是一个比较。使用===运算符进行比较。