【问题标题】:Alternating classes using jQuery Template使用 jQuery 模板交替类
【发布时间】:2012-01-18 19:25:33
【问题描述】:

我想根据收到的数据数组生成<li> 项目列表。每个人都有一个交替的“偶数”或“奇数”类。这是我目前所拥有的:

<script id="news_template" type="text/x-jquery-tmpl">
    <li>
        {{= title }}
    </li>
</script>

查看文档,我看不到任何可以轻松执行此操作的内容。有什么想法吗?

谢谢。

编辑:如果我可以简单地以某种方式评估原始 JavaScript,我可以简单地设置一个变量并在每次迭代中将我的输出基于该变量。我知道 jQote2 有这个功能。例如,我可以这样做:

<% even = !even; %>

...然后将类基于该变量的状态。

【问题讨论】:

    标签: javascript jquery ajax template-engine jquery-templates


    【解决方案1】:

    上周我刚刚为具有这种结构的表执行了此操作:

    <table class='stripe' width='100%'>
      <!---awesome table with awesome rows and awesome columns--->
     < /table>
    

    所以我使用了几行 css:

     tr.even {background-color: #DDD;  color:Black;}
     tr.odd {background-color: #fff; color:Black;} 
    

    然后,使用 jQuery:

      $('table.stripe tbody tr:odd').addClass('odd');
      $('table.stripe tbody tr:even').addClass('even'); 
    

    在你的情况下,只需使用:

    $ ('ul.stripe li:even').addClass('even');
    $ ('ul.stripe li:odd').addClass('odd');
    

    这意味着“请,jQuery 先生,根据 tr 是奇数还是偶数,放置一个奇数或偶数类”。

    希望对你有帮助!

    【讨论】:

    • 此方法的更简单版本是in the answers here。它使用第 n 个子选择器。
    • @JackieChiles,太棒了!非常优雅的解决方案,从现在开始使用它!
    • nth-child 选择器非常酷。如果我不必让这个网站与 IE7 兼容,我会这样做。
    【解决方案2】:
            {{if ($index %2) == 0}}
                <div id="item odd">
            {{else}}
                <div id="item even">
            {{/if}}
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-12-23
      • 2016-02-10
      • 2011-06-20
      • 2014-06-19
      • 2015-03-09
      相关资源
      最近更新 更多