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
,, orelements. 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...
-
I've been asked to update some Excel 2003 macros, but the VBA projects are password protected, and it seems there's a lack of docume...
-
I got a stupid problem with SQL that I can't fix. ALTER TABLE `news` ADD `dateAdded` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP AUTO...
No comments:
Post a Comment