2013-04-17 1 views
1

Задача состоит в том, чтобы добавить определенный класс к определенной кнопке в диалоговом окне JQuery UI.Несоответствие селектора контекста jQuery

Я испытал оба этих, и это будет работать:

$('button:contains("Add New")', $('#selectDialog').parent()).addClass('alternateButtonStyle'); 

этом; однако не будет работать:

$('button:contains("Add New")', '#selectDialog:parent').addClass('alternateButtonStyle'); 

Почему не будет работать второй образец кода?

ответ

4

Селектор :parent не выбирает родительский элемент, он просто фильтрует элементы, которые являются родительскими. Это инверсия :empty.

http://api.jquery.com/parent-selector/

Это не будет работать, потому что он не делает то, что вы думаете.

Это вариант использования также без документов, ваш селектор контекста должно быть на самом деле объект JQuery, просто обернуть его в $()

Undocumented функциональность может быть нарушена без предупреждения.

+0

Я вижу; хорошая точка зрения. Есть ли способ использовать селектор, а не вызов метода '$' jQuery, как я? – user1477388

+0

@ user1477388 Нет. Почему вы хотите использовать селектор? –

+0

Я чувствую, что это должно быть быстрее, так как это меньше текста. – user1477388