Подтвердить что ты не робот

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

Предположим, что

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

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

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

и с:

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

Оба без везения. У меня есть пустая найденная переменная. Что я делаю неправильно?

P.S. Да, я знаю, что у меня есть прямой доступ к div с

$("#demo_div") 

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

UPDATE: Даже если у меня нет элемента root div, как здесь:

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

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

4b9b3361

Ответ 1

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

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

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

Ответ 2

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

testHTML.search('demo_div')>-1