Найти элемент в строке 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.
Ответы
Ответ 1
Проблема заключается в том, что ваш div
является корневым элементом в коллекции, поэтому вам нужно использовать .filter()
вместо .find()
(который только смотрит на элементы-потомки):
var found = $(testHTML).filter("#demo_div");
Я предполагаю, что ваша фактическая строка HTML более сложна, чем та, что в вопросе, иначе вам не нужно ничего делать, кроме $(testHTML)
, и у вас будет объект jQuery, содержащий этот единственный элемент.
Ответ 2
Вы можете использовать функцию .search()
самого javascript.
testHTML.search('demo_div')>-1