我试图总是让我的脚本逻辑尽可能快地计算。
$("ul").prepend( $("ul li:last") );
对比
$("ul").prepend( $(this).find("li:last") );
基本上,将最后一个列表元素带到列表前面的最快方法是什么?
我建议这样做。
var $list = $("ul");
$list.prepend($list.children().last());
否则,您最终会多次选择相同的元素,如果您担心性能,这是您想要避免的事情。
编辑:根据@Jack 下面的评论,他是对的。当页面上有多个<ul>
元素时,这将无法正常工作。像这样的东西可能会更好。
$("ul").each(function(){
var $thisList = $(this);
$thisList.prepend($thisList.children().last());
});
如果你想要快速,你不会使用 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'));