0

我试图总是让我的脚本逻辑尽可能快地计算。

$("ul").prepend( $("ul li:last") );

对比

$("ul").prepend( $(this).find("li:last") );

基本上,将最后一个列表元素带到列表前面的最快方法是什么?

4

2 回答 2

1

我建议这样做。

var $list = $("ul");
$list.prepend($list.children().last());

否则,您最终会多次选择相同的元素,如果您担心性能,这是您想要避免的事情。


编辑:根据@Jack 下面的评论,他是对的。当页面上有多个<ul>元素时,这将无法正常工作。像这样的东西可能会更好。

$("ul").each(function(){
  var $thisList = $(this);
  $thisList.prepend($thisList.children().last());
});
于 2013-04-03T02:57:09.840 回答
1

如果你想要快速,你不会使用 jQuery:

void function(lists) {
  for (var i = 0; i < lists.length; ++i) {
    var children = lists[i].children;

    if (children.length > 1) {
      lists[i].insertBefore(children[children.length - 1], children[0]);
    }
  }
}(document.getElementsByTagName('ul'));

基准

于 2013-04-03T03:07:24.767 回答