【问题标题】:Using jQuery to Rotate the order使用 jQuery 旋转顺序
【发布时间】:2014-10-28 11:08:29
【问题描述】:

我有这样的html:

<ul id="list">
  <li class="item">a</li>
  <li class="item">b</li>
  <li class="item">c</li>
</ul>

我想使用 jQuery 完成的是旋转顺序。因此,在一次调用之后,生成的 html 将是:

<ul id="list">
  <li class="item">c</li>
  <li class="item">a</li>
  <li class="item">b</li>
</ul>

又一个……

<ul id="list">
  <li class="item">b</li>
  <li class="item">c</li>
  <li class="item">a</li>
</ul>

等等。实现此目的的正确方法是什么?

【问题讨论】:

标签: javascript jquery


【解决方案1】:
$("#list li:last").insertBefore("#list li:first")

DEMO

【讨论】:

    【解决方案2】:

    从列表中弹出最后一项并将其添加到列表中,如下所示:

    var $list = $('#list');
    $list.find('.item:last').prependTo($list);
    

    这是micro-optimization的情况,但只要我们必须创建2个jquery对象(并且没有简单的方法),首先声明列表,然后使用它来限制搜索范围find 的项目应该比使用 2 个选择器以文档作为搜索范围更快。

    【讨论】:

    • 您不必将其删除即可使其工作:$("#list li:last-child").prependTo("#list");
    【解决方案3】:

    获取最后一项并将其添加到前面。

    $('#list li').last().prependTo('#list');
    

    DEMO

    【讨论】:

      猜你喜欢
      • 2018-04-17
      • 1970-01-01
      • 1970-01-01
      • 2013-09-10
      • 1970-01-01
      • 1970-01-01
      • 2016-11-27
      • 1970-01-01
      • 2018-10-01
      相关资源
      最近更新 更多