Найти элемент в строке HTML

Давайте предположим, что у меня есть

var testHTML = "<div id='demo_div'></div>";

Я хочу получить выше div как объект JQuery, чтобы манипулировать им. Я пытаюсь найти это с:

 var found = $(testHTML).find("#demo_div");

и с:

 var found = $(testHTML).find("div");

Оба без везения. Я нашел пустую переменную. Что я делаю не так?

PS Да, я знаю, что могу иметь прямой доступ к своему div с

$("#demo_div") 

но я не могу сделать это в моем случае - мне нужно получить его из простого HTML, который будет присвоен некоторой переменной, как в моем примере с testHTML var.

ОБНОВЛЕНИЕ: Даже если у меня нет корневого элемента div, как здесь:

var testHTML = "<html><div id='demo_div'></div></html>";

Я не могу использовать find для навигации по элементу div.

2 ответа

Решение

Проблема в том, что ваш div является корневым элементом в коллекции, поэтому вам нужно использовать .filter() вместо .find() (который смотрит только на элементы-потомки):

var found = $(testHTML).filter("#demo_div");

Я предполагаю, что ваша фактическая HTML-строка является более сложной, чем та, что в вопросе, в противном случае вам не нужно ничего делать, кроме $(testHTML) и у вас будет объект jQuery, содержащий этот единственный элемент.

Вы могли бы использовать .search() функция самого javascript.

testHTML.search('demo_div')>-1
Другие вопросы по тегам