簡體   English   中英

為什么我的jQuery模板方法不再適用於jQuery 1.9.1?

[英]Why does my jQuery templating approach not work in jQuery 1.9.1 anymore?

請看這個小提琴: http//jsfiddle.net/VdZJx/2/

$(function()
{
    var li = $($("#link-item-template").html()).find("a").attr({
        href: "javascript:;"
    }).html("Toggle");

    $("ul").append(li);
});

這是一個模板化的方法我,正如我所見,甚至一些其他的lib用於存儲和生成html模板。

如果您使用jQuery版本1.9.1,讓這個演示運行並觀察控制台,當您嘗試從$().html()生成新的jQuery對象時, Sizzle會拋出以下錯誤。 看到:

未捕獲錯誤:語法錯誤,無法識別的表達式:<li> <input type =“checkbox”/> <a> </a> </ li>

我該怎么辦才能讓它再次發揮作用?

由於您沒有真正獲得正確的元素,但腳本標記的內容為字符串(恰好是HTML),HTML字符串中添加了大量的空格和換行符,您需要對其進行修剪以使其工作為有效的選擇器:

$($.trim($("#link-item-template").html()))

小提琴

暫無
暫無

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

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