Javascript 如何递归调用/运行jQuery嵌套模板

Javascript 如何递归调用/运行jQuery嵌套模板,javascript,jquery,html,recursion,jquery-templates,Javascript,Jquery,Html,Recursion,Jquery Templates,好的,这有点像json对象和jquery模板的初始阶段。。。我想知道如何更深入。问题是我很懒,希望代码能帮我完成工作 Q:>如何递归调用jQuery模板。 以这个json对象为例: var Links = [{"Name":"Home","NiceUrl":"/home/","Children":null}, {"Name":"MX-8","NiceUrl":"/mx-8/","Children":null}, {"Name":"Quiz","NiceUrl":"/quiz/","Child

好的,这有点像json对象和jquery模板的初始阶段。。。我想知道如何更深入。问题是我很懒,希望代码能帮我完成工作

Q:>如何递归调用jQuery模板。

以这个json对象为例:

var Links =
[{"Name":"Home","NiceUrl":"/home/","Children":null},
 {"Name":"MX-8","NiceUrl":"/mx-8/","Children":null},
 {"Name":"Quiz","NiceUrl":"/quiz/","Children":
      [{"Name":"Thank you","NiceUrl":"/quiz/thank-you/","Children":
         [{"Name":"Can't get here","NiceUrl":"/URL/","Children":null}]
     }]
 }];
我可以使用以下模板轻松访问“测验”及其子项“谢谢”:

<script id="itemTemplate" type="text/x-jquery-tmpl">
    <li><a href="${NiceUrl}">${Name}</a>
        {{tmpl($data) "#childTemplate"}}
    </li>
</script>
<script id="childTemplate" type="text/html">
    <ul>{{each Children}}<li><a href="${NiceUrl}">${Name}</a></li>{{/each}}</ul>
</script>

  • {{tmpl($data)“#childTemplate”}
    • {{each Children}
    • {{/each}
    还使用了html和替换它的调用:

    <script type="text/javascript">
        $("#itemTemplate").tmpl(Links).appendTo("#SiteMapHolder");
    </script>
    <ul id="SiteMapHolder">
        <%--jQuery Template will replace this empty space--%>
    </ul>
    
    
    $(“#itemTemplate”).tmpl(Links).appendTo(“#SiteMapHolder”);
    
    我尝试将第二个模板的类型设置为“text/x-jquery-tmpl”并调用第三个模板,但传递的数据似乎与调用它的父模板相同

    那么,对于所有具有更高智能和经验的生物,那么我,告诉我如何懒惰并递归调用jQuery模板


    PS:抱歉,这不在JSFIDLE中。它不喜欢我的脚本标签:(

    我认为您只需要检查子项是否存在,并使用子项作为数据对同一项模板进行递归调用。您还可以有条件地添加ul标记。请参阅此JSFIDLE了解我的意思:

    我使用的模板本身如下所示:

    <script id="itemTemplate" type="text/x-jquery-tmpl">
    <li><a href="${NiceUrl}">${Name}</a>
        {{if Children}}
        <ul>
        {{tmpl(Children) "#itemTemplate"}}
        </ul>
        {{/if}}
    </li>
    
    
    
  • {{if Children}}
      {{tmpl(子项)“#itemTemplate”}
    {{/if}

  • 有没有哪位mod知道如何使其色彩鲜艳,从而更易于阅读?在《盗梦空间》将嵌套虚拟机的概念引入大众之前,我的一位同事/朋友决定尝试在使用各种不同药物时编程(那是70年代)。他做了acid,但在它生效后,他从来没有做过多少编程。他说他看了某个函数的递归定义,然后开始笑。然后他笑了笑他在笑的事实…@mike我在笑我自己笑这个。恶性循环什么时候会结束!!如果没有基本情况,堆栈顶部就是limit.you有任何代码示例可以让我从正确的方向开始吗?您可能在我编辑答案时添加了您的注释。我没有包含我认为符合您需要的JSFIDLE,我还包含了我认为您需要的模板。非常感谢heaps。现在我可以看到它了,它非常简单。它可以调用它本身。我只是把它弄得一团糟。再次感谢。没问题。当我说“不包括JSFIDLE”时,我的评论应该说“现在”而不是“不”。