3

我有一个问题,我以为我会自己解决,但不知何故,我做不到。我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'); 

我没有让它工作。我也尝试使用childrenand siblings,但没有效果。我猜想没有办法同时使用removeClasscontains。我错了吗?

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

PS:一个小说明 --> 如果我删除类 icon1 和 2,图像将自动消失。

4

4 回答 4

1

尝试

您正在应用错误的语法。

尝试执行以下操作

.removeClass('icon2');反而

.removeClass('.icon2');

读取 API removeClass

于 2013-06-26T13:46:49.090 回答
0

$('.single-page :contains("-")') 选择器会将您带到包含“-”的 div,在这种情况下,是 rate div,而不是单页 div。现在,您必须备份一个级别,然后找到跨度。

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

$('.single-page :contains("-")').parent().find('span').removeClass('icon2');
于 2013-06-26T14:10:32.080 回答
0

这些类在您的跨度上,因此您需要遍历包含该类的跨度 - 还要删除.内部的 removeClass

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

或者

$('.single-page:contains("-")').find('.icon2').removeClass('icon2'); 
于 2013-06-26T13:57:11.760 回答
0

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

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

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

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

于 2013-06-26T13:47:54.613 回答