Wednesday, February 28, 2018
javascript - The right way parse html to jQuery object
Answer
Answer
I want to parse a html string to jQuery object then find an element by ID.
I tried 3 ways bellow, but only the last works. I don't know why the others not works?
var html = "";
").html(html).find('#main').length);
// Not work, return 0
console.log($(html).find('#main').length);
// Not work, return 0
console.log($($.parseHTML(html)).find('#main').length);
// Works, return 1
console.log($("
Here is the sample:
http://jsfiddle.net/nbyofkam/2/
Answer
It's documented :
When passing in complex HTML, some browsers may not generate a DOM that exactly replicates the HTML source provided. As mentioned, jQuery uses the browser"s .innerHTML property to parse the passed HTML and insert it into the current document. During this process, some browsers filter out certain elements such as
,
, or
elements. As a result, the elements inserted may not be representative of the original string passed.
As a result, $(html)
is reduced to ""
. You can verify that by logging $(html)[0].outerHTML
.
So you can't use find
without wrapping it, which is what you do.
plot explanation - Why did Peaches' mom hang on the tree? - Movies & TV
In the middle of the movie Ice Age: Continental Drift Peaches' mom asked Peaches to go to sleep. Then, she hung on the tree. This parti...
-
How to display something on or after selecting a specific radio button, for example is I have a group of radio button Interest Value o 3% ...
-
I use the code below to update the url link based on user text input: Right now it works pretty fine when someone clicks the submit ...
-
I need to be able to determine when an object is created (not a DOM element -- a javascript object). An answer to this question has some ve...
No comments:
Post a Comment