0
    <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>

moveUpMethode 工作正常。

但是当我使用时moveDown,Chrome 控制台会说

未捕获的 TypeError: $(...).reverse 不是函数。

任何帮助将不胜感激。谢谢。

4

1 回答 1

4

jQuery 没有reverse()对 jQuery 对象进行操作的 a 。

也许您的意思是$('input:checked').get().reverse(),它将对象转换为基本数组,然后将其反转。当然,为了调用each()它(一个 jQuery 方法),你必须将它转换回一个 jQuery 对象:

$( $('input:checked').get().reverse() ).each(function(){…})

不过,另一种选择是不使用each()和使用 vanilla JavaScript:

$('input:checked').get().reverse().forEach(elem=>{
  moveDown(elem)
})
于 2018-09-12T01:29:00.977 回答