這些問題的大多數答案都表明使用innerHTML
和outerHTML
。但我沒有得到我想要的。例如:將DOM元素轉換爲原始HTML字符串
var el = document.createElement("DIV");
el.innerHTML = "<span><% blabla %></span>";
// let's say that el is actually initialized with document.getElementById
// and el = <div><span><% blabla %></span></div>
console.log(el.outerHTML);
上述代碼的結果是
"<div><span><% blabla %></span></div>"
那麼,問題出在<
和>
,事實上,我沒有收到他們。好的,我知道瀏覽器的行爲有點不正常,我可以用.replace(/</g, '<').replace(/>/g, '>')
來解決這個問題。但是,簽出以下幾點:
el.innerHTML = "<span><% for(var i=0; i<list.length; i++) { %> bla bla <% } %>";
console.log(el.outerHTML);
結果不能修復:
<div><span><% for(var i=0; i<list.length; i++)="" {="" %=""> bla bla <% } %></list.length;></span></div>
任何想法來解決這個問題。
編輯:
我發現問題是在該<
標誌for循環。所以如果我用for(var i in list)
替換它,那麼outerHTML將返回正確的值。
沒有。這是一個使用這些信息的客戶端庫。類似像Angular。更具體的這一個http://krasimir.github.io/absurd/ – Krasimir
也許這個變種是用別的東西代替'<' and '>'。 – Krasimir
難道你不能等到圖書館完成信息處理,然後閱讀*生成的* DOM? – CodingIntrigue