簡體   English   中英

正確的方法將html解析為jQuery對象

[英]The right way parse html to jQuery object

我想將一個html字符串解析為jQuery對象,然后按ID查找一個元素。

我嘗試了3種方法,但只有最后一種方法。 我不知道為什么其他人不行?

var html = "<html><body><div id='main'></div></body></html>";

// 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($("<html/>").html(html).find('#main').length); 

以下是示例: http//jsfiddle.net/nbyofkam/2/

記錄在案

傳遞復雜的HTML時,某些瀏覽器可能無法生成完全復制所提供的HTML源的DOM。 如上所述,jQuery使用瀏覽器的.innerHTML屬性來解析傳遞的HTML並將其插入到當前文檔中。在此過程中,某些瀏覽器會過濾掉某些元素,例如<html><title><head>元素結果,插入的元素可能無法代表傳遞的原始字符串。

結果, $(html)減少為"<div id="main"></div>" 您可以通過記錄$(html)[0].outerHTML

所以你不能find沒有包裝的情況下使用find ,這就是你所做的。

另一種方法 -

var myTestDiv = document.createElement('div');
var mystr = '<div id="main"></div>';
myTestDiv.innerHTML = mystr;

console.log(myTestDiv.querySelector('div#main'));

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM