4

我想要一个 jQuery 选择器,它可以选择任何没有包含字符串“-text”的类的元素;

例如在下面:

<img class="cow" > 
<img class="monkey" > 
<img class="cow-text" > 
<img class="monkey-text" > 

我想选择:

<img class="cow" > 
<img class="monkey" >

我知道我需要使用not,但我不确定格式。以下结果不会选择任何项目:

$('.panel').find('.layer').not('[class*="-text"]');

4

3 回答 3

2

如果类总是以“ -text”结尾,你应该使用EndsWith选择器,例如

panel.find('img').not('[class$="-text"]');

或者

panel.find('img:not([class$="-text"])')

这是一个更精确的解决方案,通配符选择器意味着类似some-text-class-text-class也会被错误选择的类。

于 2013-08-05T13:14:26.957 回答
1

尝试

panel.find('img').not('[class*="-text"]');
于 2013-08-05T13:12:26.387 回答
0

尝试查找所有 img 元素并删除所有以 . 结尾的元素-text。并将每个用于多个元素。例如 class="monkey-text"

$("img").not("[class$='-text']").each(function(){
  alert($(this).attr("class"));
});

第二个预览显示字符串text-开头的字符串。只需替换$^ 例如 class="text-monkey"

$("img").not("[class^='text-']").each(function(){
  alert($(this).attr("class"));
});
于 2013-08-05T13:33:13.457 回答