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...
-
When the left part is an object instance, you use -> . Otherwise, you use :: . This means that -> is mostly used to access instance m...
-
This question attempts to collect the few pearls among the dozens of bad C++ books that are published every year. Unlike many other programm...
-
I am new to dask and I found so nice to have a module that makes it easy to get parallelization. I am working on a project where I was able ...
No comments:
Post a Comment