Javascript 如何使用jquery反转列表的顺序
我有一个动态列表,我正在尝试打开当前订单。在这个例子中,它是1,2,3,我想把它变成3,2,1Javascript 如何使用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,但这应该可以: $
<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函数会填充列表。这个答案应该得到更多的投票,并且是被接受的答案。这个答案应该得到更多的投票,并且是被接受的答案