Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jquery-ui/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在jQuery中同时使用:contains和removeClass_Jquery_Jquery Ui_Contains_Removeclass - Fatal编程技术网

在jQuery中同时使用:contains和removeClass

在jQuery中同时使用:contains和removeClass,jquery,jquery-ui,contains,removeclass,Jquery,Jquery Ui,Contains,Removeclass,我有一个问题,我想我可以自己解决,但不知为什么,我不能。我正在使用jQuery检查类单页是否包含一个加号或减号。如果有加号,我希望icon1为绿色。如果有一个减号,我希望它是红色。 <div class="blocking single-page"> <div class="thumbs-for-you"> <span class="icon1"></span> <span class="icon2"></span&g

我有一个问题,我想我可以自己解决,但不知为什么,我不能。我正在使用
jQuery
检查类单页
是否包含一个加号或减号。如果有加号,我希望
icon1
绿色。如果有一个
减号
,我希望它是红色。

<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>
我没有让它工作。我也尝试过使用
儿童
兄弟姐妹
,但没有效果。我猜想没有办法同时使用
removeClass
contains
。我是不是错了

有人能帮我解决这个问题吗

PS:littledescription-->如果我删除类icon1和2,图像将自动消失。试试看

<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>
您正在应用错误的语法

试着做以下事情

.removeClass('icon2')取而代之

.removeClass('.icon2');

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

$('.single-page').find(':contains("-")').removeClass('icon2');
这里有一把小提琴样品:


另外,在您提供的示例代码中,甚至没有一个元素具有class
icon2
并包含“-”

这些类在您的span上,因此您需要遍历到包含该类的span中-同时删除removeClass中的

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

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

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

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

尝试
.removeClass('icon2')
而不是
.removeClass('icon2').Class()
方法接受类,而不是选择器,因此不需要前缀
Nope Nope和Nope。这行不通。我之前试过了,我们说的是真的,你写的有问题。你还有一个额外的问题。这不是正确的答案;您只是假设它是正确的。@Johan很高兴它有帮助:)您只选择了div,它没有您想要删除的类,所以解决方案是找到您想要的元素,这样您就可以修改它了。这是正确的。真不敢相信我居然没看到。无论如何,再次谢谢你,我欠你一个人情。
$('.single-page :contains("-")').parent().find('span').removeClass('icon2');