为什么我的jQuery模板方法在jQuery 1.9.1中不再起作用?

3
请查看这个示例: http://jsfiddle.net/VdZJx/2/
$(function()
{
    var li = $($("#link-item-template").html()).find("a").attr({
        href: "javascript:;"
    }).html("Toggle");

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

这是一种模板化的方法,我已经看到其他一些库也在使用它来存储和生成HTML模板。
如果您使用jQuery版本1.9.1,并让此演示运行,并观察控制台,则会发现当您尝试从$().html()生成新的jQuery对象时,Sizzle会抛出以下错误:
未捕获的错误:语法错误,无法识别的表达式:
  • 我该怎么做才能使其再次正常工作?
    1个回答

    1
    由于您实际上没有获取到正确的元素,而是作为字符串获取了脚本标签的内容,这恰好是HTML,因此会添加大量空格和换行符到HTML字符串中,您需要修剪它以使其作为有效选择器工作:
    $($.trim($("#link-item-template").html()))
    

    FIDDLE

    {{链接1:FIDDLE}}


    天啊...我尝试了所有的方法,但没有尝试过这个。这是正确的答案并解决了问题。谢谢! - user659025

    网页内容由stack overflow 提供, 点击上面的
    可以查看英文原文,
    原文链接