2014-09-11 49 views
1

我正在使用jquery html parser($。parseHTML())。 這個函數的問題是,如果我傳遞一個包含html正文和表單標籤的字符串,函數只返回表單標籤。 但我想保留原始標籤。 我怎樣才能做到這一點?在HTML解析器中保留htl和body標記

+0

'$ .parseHTML()'使用瀏覽器的內置HTML解析器,通過分配給'temporaryelement.innerHTML'。如果瀏覽器放棄這些標籤,jQuery無法讓它們返回。 – Barmar 2014-09-11 05:41:25

+0

有沒有其他方法可以保留它們? – 2014-09-11 05:45:12

+0

說,我把整個HTML放在文本區域,然後我解析它,使用$ .parseHTML()。現在textarea內容的html和body標籤被剝離。我想要保留HTML和身體標籤在文本區...我怎麼做到這一點? – 2014-09-11 07:38:28

回答

0

試試這個:

var a = document.createElement('html'); 
a.innerHTML = '<head></head><body><form></form></body>'; 
0

編輯,更新

嘗試

$(function() { 
    var htmlstr = "<html data-abc=123><body>abc<form><input type=text /></form>" 
        + "</body></html>"; 
    var d = document.implementation.createHTMLDocument(); 
    d.write(htmlstr); 
    var _html = $(d).find("html"); 
    $("textarea").val(_html[0].outerHTML) 
}) 

的jsfiddle http://jsfiddle.net/guest271314/ecf6gjxo/

+1

d.write(html)---> d.write(htmlstr)? – 2014-09-11 10:40:30

+0

@MartinErnst更新。謝謝 – guest271314 2014-09-11 14:04:32