簡體   English   中英

為什么 jQuery 沒有將此 html 字符串轉換為 jQuery 對象?

[英]Why is jQuery not turning this html string into a jQuery object?

我有一個模板字符串,我需要將其轉換為 jQuery 對象,以便我可以解析它並填寫數據。

$(function(){

var template = '<h3>Details</h3>' +
    '<ul>' + 
    '<li>Submitted: <span class="submittedTime"></span></li>' + 
    '<li>Submitted by: <span class="submitter"></span></li>' + 
    '<li>Contact Information' +
        '<ul>' +
        '<li>Name: <span class="contactName"></span></li>' +
        '<li>Name: <span class="contactEmail"></span></li>' +
        '</ul>' +
    '</li>';


var t = $(template);

});

當我嘗試對它們執行 jQuery 操作(例如.find() )時,它失敗了。

你對我做錯了什么有什么想法嗎?

我認為它實際上是,根據Quinten 的評論 嘗試針對帶有<div class="test">元素的 HTML 文檔運行此腳本:

$(function () {

    var template =
        "<h3>Details</h3>" +
        "<ul>" +
        "<li>Submitted: <span class='submittedTime'></span></li>" +
        "<li>Submitted by: <span class='submitter'></span></li>" +
        "<li>Contact Information" +
        "<ul>" +
        "<li>Name: <span class='contactName'></span></li>" +
        "<li>Name: <span class='contactEmail'></span></li>" +
        "</ul>" +
        "</li>" +
        "</ul>";


    var t = $(template);
    //console.log(t);
    $(t).appendTo(".test");
});

有關演示,請參閱http://jsfiddle.net/5svLfq4r/

您需要將代碼片段包裝在 div 元素中並關閉外部ul標簽。 如果您運行下面的代碼段,jQuery 將正確輸出 HTML。 我已將您的模板轉換為多行語句,以便於閱讀

 a = $(function() { var template = ` <div> <h3>Details</h3> <ul> <li>Submitted: <span class="submittedTime"></span></li> <li>Submitted by: <span class="submitter"></span></li> <li> Contact Information <ul> <li>Name: <span class="contactName"></span></li> <li>Name: <span class="contactEmail"></span></li> </ul> </li> </ul> </div>`; var t = $(template); document.write(t.html()) }); a()
 <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

基於文檔

為確保跨平台兼容性,代碼段必須格式正確。 可以包含其他元素的標簽應該與結束標簽配對:

所以你可能需要關閉那個<ul>

還,

如果 HTML 比沒有屬性的單個標簽更復雜,[..] 元素的實際創建由瀏覽器的 .innerHTML 機制處理。 大多數情況下,jQuery 會創建一個新元素並將該元素的 innerHTML 屬性設置為傳入的 HTML 片段。

在不同的瀏覽器上可能會有所不同。

暫無
暫無

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

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