2015-11-11 29 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 
}