2015-11-11 94 views
1
$("#test > div > div.row-fluid > table > tbody > tr > td:nth-child(3)").after("<td><i class='fa fa-plus-square-o'></i></td>"); 

$("#test > div > div.row-fluid > table > tbody > tr > td:nth-child(4)").click(function() 
{ 
    if ($("#test > div > div.row-fluid > table > tbody > tr > td:nth-child(4) > i").hasClass("fa fa-plus-square-o")){ 
     $(this).replaceWith("<td><i class='fa fa-minus-square-o'></i></td>"); 
    } 
    if ($("#test > div > div.row-fluid > table > tbody > tr > td:nth-child(4) > i").hasClass("fa fa-minus-square-o")){ 
     $(this).replaceWith("<td><i class='fa fa-plus-square-o'></i></td>"); 
    } 
}); 

这是我有的代码。第一个if可以工作,但在更改之后,但如果我想将其更改回去,则第二个if不起作用。jQuery:问题与如果

谢谢!

+0

只是假设这是一个X-Y的问题,如果你想切换特定元素的类,有更好的方法。 –

+0

您正试图“翻转它”,然后立即将其翻转回来? – mcsilvio

+0

@mcsilvio,不是马上,而是当我想要。 –

回答

1

如果你只是想改变对i类,尝试toggle: - 对事件

$("#test > div > div.row-fluid > table > tbody > tr > td:nth-child(4)").click(function() 
{ 
    $('i', this).toggleClass('fa-plus-square-o fa-minus-square-o'); 
}); 
+0

这工作。谢谢! –

+0

很高兴我能帮忙... – BenG

0

试试这个:

$(document).on("click","#test > div > div.row-fluid > table > tbody > tr > td:nth-child(4) > i",function() 
{ 
    $(this).toggleClass("fa-minus-square-o fa-plus-square-o"); 
}); 
0

使用文档声明,变化的内容后,无法确定新方法就是这样。

但更好的方法去实现它是这样做的:

if($('#test etc..').hasClass('fa-minus-square-o')){ 
    $(this).attr('class', 'fa fa-plus-square-o'); 
    // or toggleClass 
}