我的函数显示 Uncaught TypeError: $(...).reverse 不是函数

Goo*_*a88 0 javascript jquery

    <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>
Run Code Online (Sandbox Code Playgroud)

moveUp方法工作正常。

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

未捕获的类型错误:$(...).reverse 不是函数。

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

vol*_*ron 5

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

\n\n

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

\n\n
$( $('input:checked').get().reverse() ).each(function(){\xe2\x80\xa6})\n
Run Code Online (Sandbox Code Playgroud)\n\n

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

\n\n
$('input:checked').get().reverse().forEach(elem=>{\n  moveDown(elem)\n})\n
Run Code Online (Sandbox Code Playgroud)\n