2016-03-22 2 views
2

Я не могу показаться, чтобы получить эту работу, это, вероятно, довольно простой, но здесь мы идем:Целевой элемент 2 классов, находящиеся внутри JQuery не селектору

Это мой селектор, и я хочу, чтобы искать элемент как с выбором [0], так и с выбором [1], но это не ищет элемент, который имеет оба. Насколько я могу судить, он только захватывает первый класс выбора и ищет его.

$(this).not("." + selection[0], "." + selection[1]).hide(); 

Я попытался вручную вводя его, как это и это работает:

$(this).not(".class1.class2").hide(); 

Я предполагаю, что запятая отделяет селекторы, и это будет неправильно там. Как я могу достичь такой же функциональности?

+3

'$ (this) .not (". "+ Selection [0] +". "+ Selection [1]). Hide();' - использовать '+', чтобы объединить эти две строки ... –

ответ

4

Заменить запятую , с + чтобы конкатенация выбор [0] с точкой .

$(this).not("." + selection[0] + "." + selection[1]).hide(); 
+0

Спасибо, что сделал трюк. Довольно трудно найти такой ответ, глядя с помощью google, так как это не так просто сформулировать. Спасибо за помощь! –

+1

Добро пожаловать @ Stephan-v – Adil

2

Эта линия

$(this).not("." + selection[0], "." + selection[1]).hide(); 

имеет ошибку синтаксиса (не из JS точки зрения, но точки селектора JQuery зрения)

делает

$(this).not("." + selection[0] + "." + selection[1]).hide(); //replaced comma with + 
+2

На самом деле это не синтаксическая ошибка (это использование оператора запятой является действительным JavaScript), но это приводит к недействительному селектору. –

+0

@ FrédéricHamidi 'only' был опечаткой :) – gurvinder372