2017-05-09 109 views
0

我有一個腳本下面的工作時div狀態是跨度之前。當我在div之前放置span時它不起作用。當我想顛倒兄弟姐妹的順序時,如何更改腳本以使其正常工作?添加刪除類反向兄弟

$('.status:contains("1") + span').removeClass('fa-times-circle').addClass('fa-sun-o faa'); 
+1

你能舉一些例子嗎?你的HTML? –

+2

'+'和'〜'只在元素是第一個元素的後面的同胞時才起作用。您無法返回或上移DOM樹。要做你想做的事情'prev()' –

+0

你已經使用了一個鄰接的兄弟選擇器('+')來檢查_next_元素。到目前爲止,還沒有CSS選擇器(還)看起來以前的元素...你可以做的是選擇父項並檢查其子項。 – KarelG

回答

0

嘗試prev()它的目標直接前置兄弟

$('.status:contains("1")').prev('span').removeClass('fa-times-circle').addClass('fa-sun-o faa'); 
+0

謝謝,Charliefl。 – MasterJoe

0

如果你想,不論使用的狀態div順序的相同的代碼和span你可以使用下面的代碼:
請注意它僅在單一跨度兄弟狀態下才有效

$('.status:contains("1")').parent().find(" > span").removeClass('fa-times-circle').addClass('fa-sun-o faa'); 

如果您只想處理span來到狀態div之前的情況,那麼您應該使用其他答案中提到的prev

0

這可能是你需要的。我看着同一父母的所有兄弟姐妹。在下面的例子中,它爲跨度過濾。

$('.status:contains("1")').siblings('span').removeClass('fa-times-circle').addClass('fa-sun-o faa');