jQuery множественный селектор с $(это)
есть ли способ сделать эту работу:
$(this, '#foo')
С этим я хочу выбрать" этот " элемент и #bar.
Для выбора, скажем, двух идентификаторов, это так же просто, как '#foo, #bar', но когда я хочу, чтобы один из этих двух был "этим", я не могу заставить его работать.
3 ответов
проблема с вашим подходом
$(this, '#foo')
вышеуказанная строка будет искать this внутри элемента id значение foo, что не то, что вы хотите здесь.
решение
можно использовать add() для этого :
var $el = $(this).add('#foo')
теперь $el содержит $(this) & $("#foo") на котором вы можете выполнять операции.
подробнее о методах используется
add("selector")
- Docs:http://api.jquery.com/add/
- что он делает: добавление элементов в набор сопоставленных элементов.
проблема с подходом, который вы используете:
$(this, '#foo')
заключается в том, что это контекстно-зависимый отбор, поиск this внутри #foo элемент (и идентично $('#foo').find(this)), который действителен в jQuery, хотя я бы предположил, что несколько бессмысленно (учитывая, что у вас уже есть ссылка на this (Я предполагаю, хотя если не this может быть window)).
во всех честность я не совсем уверен, почему селектор "работает" вообще, если не указано this node jQuery просто отбрасывает контекст, учитывая, что он уже "знает", где this узел и ссылка.
чтобы добавить в выборку:
$(this).add('#foo');
или (наоборот):
$('#foo').add(this);
ссылки: