我没有语法错误,也没有任何逻辑错误,但是'else'分支在应有的时候没有执行(我已经添加了一些警报来进行检查-但它看起来一样' '即使不满足条件,即单击同一元素的第二次单击,代码也会执行)
我尝试设置2个单独的'if'语句,以检查元素的仅2个替代状态-基本上是按钮文本,其前面带有+或-号...
$('.device').click(function(){
var i = $('.device').index(this);
var str = $(this).text();
if($('.device').index(this) === i){
if($(this).html("<i class='fas fa-plus'></i> " + str)){
$(this).html("<i class='fas fa-minus'></i> " + str);
$('.main').css("visibility", "visible");
alert("HELLO");
}
else{
$(this).html("<i class='fas fa-plus'></i> " + str);
$('.main').css("visibility", "hidden");
alert("GOODBYE");
}
}
});
我希望'.main'类在隐藏和可见之间交替,加号更改为减号,反之亦然,但它仅在第一次工作,即加减为负,隐藏为可见元素(每次都会在警报窗口中显示HELLO-表示它仅在执行if分支)
答案 0 :(得分:-1)
您可以像这样检查班级名称
$('.device').click(function(){
var i = $('.device').index(this);
var str = $(this).text();
if($('.device').index(this) === i){
if($(this).hasClass("fa-plus")){
$(this).html("<i class='fas fa-minus'></i> " + str);
$('.main').css("visibility", "visible");
alert("HELLO");
}
else{
$(this).html("<i class='fas fa-plus'></i> " + str);
$('.main').css("visibility", "hidden");
alert("GOODBYE");
}
}
});