Если я ищу элемент, т.е. вариант в окне выбора, как получить весь тег функции в качестве html?
<select name="xy">
<option id="xyz" value="abc">something here</option>
some more options
</select>
это не то, что я хочу получить:
$('select[name="xy"] option[value="abc"]').html()
это только возвращает меня
"something here"
но я хочу получить весь тег
<option id="xyz" value="abc">something here</option>
в функции foreach это работает очень хорошо
$('option[value="abc"]').each(function(){
console.log(this);
});
возвращает мне мой поиск
<option id="xyz" value="abc">something here</option>
но там не должно быть необходимости, не так ли?
Если вам нужна эта точная string
по какой-то причине, вы можете следовать за Андреем. Просто имейте в виду, что это будет string
объект, а не объект DOM
. Если вы хотите использовать фактический объект, вы можете просто использовать $('select[name="xy"] option[value="abc"]')[0]
и это вернет элемент DOM
в индекс 0 селектор jQuery. Если вы хотите, чтобы вся эта строка добавляла элементы в другое место на странице, это обходной способ сделать это. Вы все еще можете использовать jQuery для этого, не входя в собственный javascript. Например:
var $copy_this = $('select[name="xy"] option[value="abc"]');
$('.some_other_place').append($copy_this.clone());
Теперь div
с классом "some_other_place" будет иметь точную копию этого элемента option
.
Вы можете просто использовать собственное свойство outerHTML
элемента DOM:
$('select[name="xy"] option[value="abc"]')[0].outerHTML
$()
выдаст список, а список не знает о outerHTML
. Таким образом, [0]
должен получить доступ к первому элементу этого списка
clone
. Это хорошая методология, потому что она кеширует jQuery и позволяет вам снова использовать ее без перерасчета. Тогда вы можете просто$variable_name.clone()
где угодно.