繁体   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