在jQuery中使用:contains和removeClass

时间:2013-06-26 13:42:35

标签: jquery jquery-ui contains removeclass

我有一个问题,我认为我会自己解决,但不知怎的,我不能。我正在使用jQuery检查班级单页contains是加号还是减号。如果有加号,我希望icon1绿色。如果有minus,我希望它是红色。

<div class="blocking single-page">
 <div class="thumbs-for-you">
  <span class="icon1"></span> 
  <span class="icon2"></span>
 </div>
 <span class="rate">-100</span>
</div>

我尝试的是(这只是我尝试过的十几件事之一):

$('.single-page:contains("-")').removeClass('.icon2'); 
$('.single-page:contains("-")').removeClass('icon2'); 

我没有得到它的工作。我也尝试使用childrensiblings,但没有效果。我猜测无法一起使用removeClasscontains。我错了吗?

请问有人帮我解决这个问题吗?

PS:一点描述 - &gt;如果删除类icon1和2,图像将自动消失。

4 个答案:

答案 0 :(得分:1)

尝试

您正在应用错误的语法。

尝试执行以下操作

.removeClass('icon2');而不是

.removeClass('.icon2');

阅读API removeClass

答案 1 :(得分:0)

实际上,您正在对元素应用过滤器,而您要选择的元素是它的子元素。试试这个。

$('.single-page').find(':contains("-")').removeClass('icon2');

这里有一个示例小提琴:http://jsfiddle.net/7Vzs5/

PS。在您提供的示例代码中,甚至没有一个可用的元素具有类icon2并包含“ - ”

答案 2 :(得分:0)

这些类在您的范围内,因此您需要遍历包含该类的范围 - 同时删除removeClass中的.

$('.single-page:contains("-") .icon2').removeClass('icon2'); 

$('.single-page:contains("-")').find('.icon2').removeClass('icon2'); 

答案 3 :(得分:0)

$('。single-page:contains(“ - ”)')选择器将您带到包含“ - ”的div,在本例中为rate div,而不是单页div。现在,您必须备份一个级别,然后找到跨度。

始终注意选择器返回的内容,将来可能对您有帮助。

$('.single-page :contains("-")').parent().find('span').removeClass('icon2');