我正试图让icanhaz / mustache循环工作,正如本answer中所定义的那样,我在浏览器控制台中遇到以下错误:
Uncaught Error: Syntax error, unrecognized expression: <option value="1">First</option>
<option value="2">Second</option>
不知道为什么。我刚刚发现这是导致问题的那条线:
ich.myTemplate(listOfStuff);
这是我的全部代码:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/tr/html4/transitional.dtd">
<html>
<head>
<title>icanhaz.js demo</title>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js" ></script>
<script type="text/javascript" src="https://raw.github.com/HenrikJoreteg/ICanHaz.js/master/ICanHaz.js"></script>
</head>
<body>
<select id="mySelectBox">
</select>
<script id="myTemplate" type="text/html">
{{#stuff}}
<option value="{{key}}">{{desc}}</option>
{{/stuff}}
</script>
<script>
$(document).ready( function() {
var listOfStuff = {stuff: [
{key: "1", desc: "First"},
{key: "2", desc: "Second"}
]};
var x = ich.myTemplate(listOfStuff);
$("#mySelectBox").append(x);
});
</script>
</body>
</html>
感谢您的任何建议!
答案 0 :(得分:2)
最后我发现了错误。这是jquery版本的问题 - 1.9.1返回错误而1.8.3没有。比较这些演示:
对于1.9.1版本,请查看javascript控制台。
此外,如果我改变了
<script id="myTemplate" type="text/html">
{{#stuff}}
<option value="{{key}}">{{desc}}</option>
{{/stuff}}
</script>
到
<script id="myTemplate" type="text/html">
{{#stuff}}<option value="{{key}}">{{desc}}</option>{{/stuff}}
</script>
对于1.9.1,它也运行良好。
编辑:这是一个已打开的issue on icanhaz/github。如果您愿意,请帮助修复此错误!
答案 1 :(得分:0)
var listOfStuff = {stuff: [
{key: "1", desc: "First"},
{key: "2", desc: "Second"}
]};
var html = ich.myTemplate(listOfStuff);
$("#mySelectBox").append($(html));
试试吗?