<script>
$(document).ready(function () {
$("#upBtn").click(function () {
$("input:checked").each(function () {
moveUp(this);
})
})
$("#downBtn").click(function () {
$("input:checked").reverse().each(function () {
moveDown(this);
})
})
});
function moveUp(v) {
let temp = $(v).parent().parent();
temp.prev().before(temp);
}
function moveDown(v) {
let temp = $(v).parent().parent();
temp.next().after(temp);
}
</script>
moveUp
方法很正常。
但是当我使用moveDown
时,Chrome控制台会显示
未捕获的TypeError:$(...)。反向不是函数。
任何帮助将不胜感激。谢谢。
答案 0 :(得分:2)
jQuery没有reverse()
可以在jQuery对象上运行。
也许您的意思是$('input:checked').get().reverse()
,它将对象转换为基本数组,然后将其反转。当然,为了对其调用each()
(一种jQuery方法),您必须将其转换回jQuery对象:
$( $('input:checked').get().reverse() ).each(function(){…})
不过,另一种选择是不使用each()
并使用普通JavaScript:
$('input:checked').get().reverse().forEach(elem=>{
moveDown(elem)
})