Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何使用jquery反转列表的顺序_Javascript_Jquery - Fatal编程技术网

Javascript 如何使用jquery反转列表的顺序

Javascript 如何使用jquery反转列表的顺序,javascript,jquery,Javascript,Jquery,我有一个动态列表,我正在尝试打开当前订单。在这个例子中,它是1,2,3,我想把它变成3,2,1 <ul> <li>1</li> <li>2</li> <li>3</li> </ul> 一, 二, 三, 如果它不是动态的,我会使用$('li:first')。在('li:last')之前使用几次。但是元素的数量总是在变化,有没有一种简单的方法来实现这一点?您可能想给ul一个id,但这应该可以: $

我有一个动态列表,我正在尝试打开当前订单。在这个例子中,它是1,2,3,我想把它变成3,2,1

<ul>
<li>1</li>
<li>2</li>
<li>3</li>
</ul>
  • 一,
  • 二,
  • 三,

如果它不是动态的,我会使用
$('li:first')。在('li:last')之前使用几次。
但是元素的数量总是在变化,有没有一种简单的方法来实现这一点?

您可能想给ul一个id,但这应该可以:

$('ul').append($('ul').find('li').get().reverse());

您可能想给ul一个id,但这应该可以:

$('ul').append($('ul').find('li').get().reverse());

有很多方法,其中之一是:


编辑使用append()将事件绑定到子级

有多种方式,其中之一是:


编辑使用append()将事件绑定到子级

另一个简单的解决方案:

$('li').each(function() {
    $(this).parent().prepend(this);
});
演示:


使用纯JavaScript甚至更快:

var li = document.getElementsByTagName('li');
for (var i = li.length; i-- ;) {
    li[i].parentNode.appendChild(li[i]);
}

演示:

另一个简单的解决方案:

$('li').each(function() {
    $(this).parent().prepend(this);
});
演示:


使用纯JavaScript甚至更快:

var li = document.getElementsByTagName('li');
for (var i = li.length; i-- ;) {
    li[i].parentNode.appendChild(li[i]);
}


演示:

为了简单起见,我将它作为一个普通的ul保存,让我测试一下,这不起作用,结果是您必须在reverse()之前添加get()方法;添加了fiddleUse.append,而不是.html
。html
将创建新的DOM元素。您不必事先删除元素,它们只需移动:“您也可以在页面上选择一个元素并将其插入另一个。[…]如果以这种方式选择的元素插入DOM中的其他位置,它将被移动到目标中(而不是克隆)”,为简单起见,我将其作为普通ul保存,让我测试一下,这不起作用,结果是必须在reverse()之前添加get()方法;添加了fiddleUse.append,而不是.html
。html
将创建新的DOM元素。您不必事先删除元素,它们只需移动即可:“您还可以在页面上选择一个元素并将其插入另一个元素。[…]如果以这种方式选择的元素插入DOM中其他位置,它将被移动到目标中(而不是克隆)”,那么这样做有效(“*”)意思/目标?如果li元素也有子元素,这将不起作用。@FelixKling这是一个很好的观点!最好是预先设置每个子元素,而不是这样做,“*”是什么意思/目标?如果li元素也有子元素,这将不起作用。@FelixKling这是一个很好的观点!最好是预先为每个孩子做准备,而不是让他们以某种方式进行设计,当网站响应时,他们的顺序错误,我无法用CSSHow修复。你是在动态添加他们吗?为什么不只是预先添加它们呢?在页面加载时,ajax函数会填充列表它们的样式是以某种方式设置的,当网站响应时,它们的顺序是错误的,我无法用CSSHow修复它。您是在动态添加它们吗?为什么不直接在它们前面加上前缀呢?在页面加载时,一个ajax函数会填充列表。这个答案应该得到更多的投票,并且是被接受的答案。这个答案应该得到更多的投票,并且是被接受的答案