2017-05-09 66 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');