我有這個情況下,我嘗試使用<template>
標記在我的HTML源代碼:HTML模板標籤和jQuery
<template id="some-id">
<div id="content-container">
<span>{{some_string}}</span>
<div>
</template>
這最終將模板文件中,但它不被視爲在DOM中。這意味着在支持模板標籤的瀏覽器中找不到$(「#content-container」)。如果我搜索:
$("#some-id")
我得到這個回:
<template id="some-id">
#document-fragment
<div id="content-container">
<span>{{some_string}}</span>
<div>
</template>
這些都沒有令我感到奇怪。我需要知道如何做的是克隆文檔片段的內容,然後創建一個新的節點,然後將其粘貼到我想要的DOM上。
我已經找到了如何做這個沒有jQuery的例子,但圍繞這個東西的許多代碼已經使用jQuery,我需要知道如何使用jQuery來做到這一點。
我首先想到的是要獲取HTML,然後用它來創建一個新的節點:
stuff = $("#some-id").html()
new_node = $(stuff)
這將導致以下錯誤:
Error: Syntax error, unrecognized expression: <the html string>
我不知道,如果錯誤是由鬍子語法造成的。我認爲必須有一個jQuery解決方案來解決這種行爲,但是當我用Google搜索時,我得到了jQuery模板的點擊量不一樣。
有沒有人有想法,答案或指向網站/網頁,將幫助我通過這個?我試圖避免在一起纏繞一些駭人聽聞的東西。編輯:我最終找到了這個解決方案(我仍在測試它,以確保它是一個解決方案,但它看起來很有前途);
template = $("#some-id")
content = template.html()
new_div = $("<div></div>")
new_div.html(content)
我最終以包含我以前並不真正需要的div,但我可以忍受。但是這種感覺很糟糕。有沒有人有更好的方法呢?好處是,它仍然可以在尚未完全適應模板標籤行爲的瀏覽器中工作。
謝謝!
'$( 「#一些-ID」)html'應該是' $(「#some-id」)。html()' – Nope 2013-04-10 15:57:36
oops,是的,這是我的問題中的拼寫錯誤。我會解決它。 – jaydel 2013-04-10 15:58:38
看看jquery .clone,它聽起來像會幫助你^^ http://api.jquery.com/clone/ – azzy81 2013-04-10 15:59:32