2013-08-05 2 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

Возможно, это 'панель', а не какие селектор/цепи, которые вы используете. – ajp15243

+0

Было бы меньше предположений/выводов/догадок, если вы включили в свою разметку все, что имеет класс 'panel', за ваш обновленный селектор. – 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 также убедитесь, что 'панель' ссылается на правильный элемент –

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