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);
ссылки: