Reputation: 4003
Let's suppose I have
var testHTML = "<div id='demo_div'></div>";
I want to get above div as JQuery object to manipulate with it. I try to find it with:
var found = $(testHTML).find("#demo_div");
and with:
var found = $(testHTML).find("div");
Both without luck. I have empty found variable. What am I do wrong?
P.S. Yes I know I can have direct access to my div with
$("#demo_div")
but I can't do it in my case - I need to get it from plain HTML that will be assigned to some variable just like in my example with testHTML var.
UPDATE: Even if I have not root div element like here:
var testHTML = "<html><div id='demo_div'></div></html>";
I can't use find for navigating div element.
Upvotes: 20
Views: 46768
Reputation: 1005
You could use the .search()
function of the javascript itself.
testHTML.search('demo_div')>-1
Upvotes: 1
Reputation: 166031
The problem is that your div
is the root element in the collection, so you need to use .filter()
instead of .find()
(which only looks at descendant elements):
var found = $(testHTML).filter("#demo_div");
I'm assuming your actual HTML string is more complex than the one in the question, otherwise you don't need to do anything other than $(testHTML)
and you will have a jQuery object containing that single element.
Upvotes: 51