Получение элемента с использованием jquery с похожими именами классов - PullRequest
0 голосов
/ 03 сентября 2011

У меня есть 2 тега div, которые похожи на имена классов, с той лишь разницей, что второй div имеет расширенное имя класса.Как я могу получить 2 элемента отдельно в 2 разных переменных, используя jquery.

<div class='container'>
  <div class='submit'></div>
  <div class='submit newClass'></div>
</div>

Из приведенного выше примера мне нужен элемент, который имеет класс 'submit', а не 'submit newClass'.

Если я сделал $('div.container .submit'), это даст мне оба тега div.Как я могу достичь этого.Я не хотел бы использовать выборки на основе индекса или с помощью метода 'first' в jquery.

Ответы [ 2 ]

3 голосов
/ 03 сентября 2011

В вашем примере второй div на самом деле не имеет «расширенного имени класса», как вы его назвали, он имеет два отдельных класса, submit и newClass.В этом случае вы можете исключить элементы, соответствующие .newClass, из вашего выбора, используя псевдо-селектор :not:

var elements = $(".submit:not(.newClass)");

В качестве альтернативы, вы можете использовать not метод:

var elements = $(".submit").not(".newClass");

Если, с другой стороны, ваш пример неверен и у вас действительно есть более длинное имя класса, которое начинается с «submit», вы можете использовать « содержитword"селектор:

var elements = $("[class~=submit]");
0 голосов
/ 03 сентября 2011

Используйте :not с классом, который вам не нужен:

 $('div.container .submit:not(.newClass)')
...