2013-08-05 94 views
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"]');

+1

這可能是什麼'panel',而不是你使用的選擇器/鏈。 – ajp15243

+0

如果您在標記中包含任何具有「面板」類別的更新選擇器,則會有更少的假設/推理/猜測。 – ajp15243

+0

注意:您應該考慮對類名稱使用不同的架構以使其更容易。 (請不要說你不能更改HTML ...) – RoToRa

回答

2

如果該類始終以「-text」結束,你應該例如使用EndsWith選擇

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

或者

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

這是一個更精確的解決方案中,通配符選擇器裝置等some-text-class-text-class類也將被錯誤地拾取。

1

嘗試

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

對不起。愚蠢的錯字。這不是問題。 – Undistraction

+0

@Pedr看起來很好http://jsfiddle.net/arunpjohny/Fr2HT/1/ –

+2

@Pedr也確保'panel'指的是正確的元素 –

0

試試找到所有的img元素,並刪除所有,以-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")); 
}); 
+0

http://jsfiddle.net/MzkJC/ – M1K1O

相關問題