请看这个小提琴: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”/> &LT a取代;< / A> < /锂>
我该怎样做才能让它再次发挥作用?
答案 0 :(得分:1)
由于您没有真正获得正确的元素,但脚本标记的内容为字符串(恰好是HTML),HTML字符串中添加了大量的空格和换行符,您需要修改它以使其成为它作为一个有效的选择器:
$($.trim($("#link-item-template").html()))