Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/80.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript icanhaz/mustache循环(遍历元素)js错误_Javascript_Jquery_Templates_Mustache_Icanhaz.js - Fatal编程技术网

Javascript icanhaz/mustache循环(遍历元素)js错误

Javascript icanhaz/mustache循环(遍历元素)js错误,javascript,jquery,templates,mustache,icanhaz.js,Javascript,Jquery,Templates,Mustache,Icanhaz.js,我正在尝试使icanhaz/mustache循环正常工作,如本文所定义,并且在浏览器控制台中出现以下错误: Uncaught Error: Syntax error, unrecognized expression: <option value="1">First</option> <option value="2">Second</option> 这是我的全部代码: <!DOCTYPE HT

我正在尝试使icanhaz/mustache循环正常工作,如本文所定义,并且在浏览器控制台中出现以下错误:

Uncaught Error: Syntax error, unrecognized expression: <option value="1">First</option>
                        <option value="2">Second</option>
这是我的全部代码:

<!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>

icanhaz.js演示
{{{东西}
{{desc}}
{{/stuff}
$(文档).ready(函数(){
var listofsuff={stuff:[
{键:“1”,描述:“第一”},
{键:“2”,描述:“第二”}
]};
var x=ich.myTemplate(listOfStuff);
$(“#mySelectBox”)。附加(x);
});
谢谢你的建议

var listOfStuff = {stuff: [ 
                  {key: "1", desc: "First"},
                  {key: "2", desc: "Second"}
              ]};
var html = ich.myTemplate(listOfStuff);
$("#mySelectBox").append($(html));

试试看?

最后我发现了错误。这是jquery版本的问题-1.9.1返回了错误,而1.8.3没有返回。比较这些演示:

  • -jquery 1.9.1
  • -jquery 1.8.3
对于1.9.1版本,请查看javascript控制台

而且,如果我改变了

<script id="myTemplate" type="text/html">
    {{#stuff}}
    <option value="{{key}}">{{desc}}</option>
    {{/stuff}}
</script>

{{{东西}
{{desc}}
{{/stuff}


{{{stuff}{{desc}{{/stuff}}
对于1.9.1,它也运行良好



编辑:这是一个打开的文件。如果您愿意,请帮助修复此错误

我已经提供了我正在执行的所有代码。它与前面提到的示例完全相同,并且返回前面提到的错误。我不知道为什么。那么,在附加html之前,使用美元语法包装html会发生什么呢?请看下面我的答案。查看这些链接并在浏览器中运行它们。您能告诉我您在上面的代码中使用的是哪个jquery版本吗?
<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>