2015-03-03 103 views
1

我發現jQuery的出現通過插入.append()該標籤時從自封閉XHTML標籤去除結束斜槓,.prepend等方式,這導致斜線在無效的XHTML中 - 這反過來 - 導致標籤損壞。jQuery的去除()自閉合標籤

下面的代碼,例如:

$('body').append('<input type="text" id="test" value="test" />'); 

結果如下所示:

<input id="test" value="test" type="text"> 

雖然預期輸出是:

<input id="test" value="test" type="text" /> 

我使用DOCTYPE:XHTML5Chrome作爲一個瀏覽器

+0

我沒有使用XHTML在相當一段時間,但是,即使是有效的doctype? – mmgross 2015-03-03 02:35:33

+0

您正在使用哪個jQuery版本? – Raptor 2015-03-03 02:35:39

+1

XHTML5是否成爲推薦?它不是靜靜地死去嗎?編輯:[有趣](https://programmers.stackexchange.com/questions/149839/is-xhtml5-dead-or-is-it-just-an-synonym-of-html5)。 – 2015-03-03 02:36:26

回答

0

作爲XHTML不支持代碼&這些功能的原料改性:document.writeinnerHTML,jQuery使用這些函數來插入內容,從而兼容性錯誤將在瀏覽器中被提示。

相反,你可以創建內容:

document.createElement('div'); 
// bla bla bla 

我的建議是改變文檔類型,以HTML5爲避免這個問題,除非你真的需要XHTML文檔類型。

參考:XHTML does not support docwrite

+0

我無法使用CreateElement,因爲我想將所有輸入標籤附加到該div內可拖動的div元素。我該如何強制將其作爲自閉標籤? – Jankya 2015-03-03 02:42:33

+0

你不能在XHTML上下文中。如何改爲使用HTML5文檔類型? – Raptor 2015-03-03 02:43:16

+0

@未知瀏覽器知道它是一個自動關閉標記......允許瀏覽器執行它想要的操作有哪些具體問題? – charlietfl 2015-03-03 02:44:08