Jquery ';其他';语句在应该执行时未执行
我没有语法错误,也没有(我看不到)任何逻辑错误,但是'else'分支没有在它应该执行的时候执行(我添加了一些警报,以检查这一点-但是它看起来是相同的'if'代码执行,即使在不满足条件的情况下,即在第二次单击同一元素时) 我已经尝试设置了两个单独的“if”ONLY语句,以检查元素的唯一两个备用状态-基本上是按钮文本,前面有+或-符号Jquery ';其他';语句在应该执行时未执行,jquery,Jquery,我没有语法错误,也没有(我看不到)任何逻辑错误,但是'else'分支没有在它应该执行的时候执行(我添加了一些警报,以检查这一点-但是它看起来是相同的'if'代码执行,即使在不满足条件的情况下,即在第二次单击同一元素时) 我已经尝试设置了两个单独的“if”ONLY语句,以检查元素的唯一两个备用状态-基本上是按钮文本,前面有+或-符号 $('.device').click(function(){ var i = $('.device').index(this); var str = $
$('.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");
}
}
});
$('.device')。单击(函数(){
变量i=$('.device')。索引(此);
var str=$(this.text();
if($('.device').index(this)==i){
如果($(this.html(“+str)){
$(this.html(“+str”);
$('.main').css(“可见性”、“可见”);
警惕(“你好”);
}
否则{
$(this.html(“+str”);
$('.main').css(“可见性”、“隐藏”);
警惕(“再见”);
}
}
});
我希望“.main”类在隐藏和可见之间交替,加号变为负号,反之亦然,但它只在第一次工作,即加号变为负号,隐藏到可见元素(每次都在警报窗口中显示HELLO-这表明它只执行“if”分支)您可以像这样检查类名
$('.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");
}
}
});
$('.device')。单击(函数(){
变量i=$('.device')。索引(此);
var str=$(this.text();
if($('.device').index(this)==i){
if($(this).hasClass(“fa plus”){
$(this.html(“+str”);
$('.main').css(“可见性”、“可见”);
警惕(“你好”);
}
否则{
$(this.html(“+str”);
$('.main').css(“可见性”、“隐藏”);
警惕(“再见”);
}
}
});
if($(this.html(“+str))条件将始终为真。你没有在那里检查任何东西。。就像你在检查函数是否执行..我是说$('.device')。单击(function(){('.fas',this)。toggleClass('fa-plus-fa-minus');})
如果您提供了html,您将更清楚地知道您要做什么。谢谢Kevin B,这看起来是一种更好的速记方法。我现在就试试。我不能遵循“回调”的逻辑,因为它并不总是正确的——它会在第一次点击时变为“fas fa减号”…为Kevin B做了一顿款待。非常感谢。非常感谢“kmgt”(用JQuery重新认识自己-很少有“初期麻烦”)我的荣幸。我不知道为什么会有人投反对票。