Javascript 我的函数表示未捕获的TypeError:$(…)。reverse不是函数 $(文档).ready(函数(){ $(“#upBtn”)。单击(函数(){ $(“输入:选中”)。每个(函数(){ 向上移动(这个); }) }) $(“#downBtn”)。单击(函数(){ $(“输入:选中”).reverse().each(函数(){ 向下移动(这个); }) }) }); 函数向上移动(v){ 设temp=$(v.parent().parent(); (temp)之前的temp.prev(); } 函数向下移动(v){ 设temp=$(v.parent().parent(); (temp)之后的temp.next(); }

Javascript 我的函数表示未捕获的TypeError:$(…)。reverse不是函数 $(文档).ready(函数(){ $(“#upBtn”)。单击(函数(){ $(“输入:选中”)。每个(函数(){ 向上移动(这个); }) }) $(“#downBtn”)。单击(函数(){ $(“输入:选中”).reverse().each(函数(){ 向下移动(这个); }) }) }); 函数向上移动(v){ 设temp=$(v.parent().parent(); (temp)之前的temp.prev(); } 函数向下移动(v){ 设temp=$(v.parent().parent(); (temp)之后的temp.next(); },javascript,jquery,Javascript,Jquery,moveUp方法工作正常 但当我使用moveDown时,Chrome控制台会显示 未捕获的TypeError:$(…)。reverse不是函数 任何帮助都将不胜感激。谢谢。jQuery没有对jQuery对象进行操作的reverse() 也许您的意思是$('input:checked').get().reverse(),它将对象转换为基本数组,然后将其反转。当然,为了对其调用each()(jQuery方法),必须将其转换回jQuery对象: <script> $(doc

moveUp
方法工作正常

但当我使用
moveDown
时,Chrome控制台会显示

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


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

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

也许您的意思是
$('input:checked').get().reverse()
,它将对象转换为基本数组,然后将其反转。当然,为了对其调用
each()
(jQuery方法),必须将其转换回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>
不过,另一种选择是不使用
each()
而使用普通JavaScript:

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

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

也许您的意思是
$('input:checked').get().reverse()
,它将对象转换为基本数组,然后将其反转。当然,为了对其调用
each()
(jQuery方法),必须将其转换回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>
不过,另一种选择是不使用
each()
而使用普通JavaScript:

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

jQuery没有那样的
reverse
功能。jQuery没有那样的
reverse
功能。非常感谢。你的建议对我帮助很大,非常感谢。你的建议对我帮助很大。