根据jQuery中的列表顺序更改输入值

Change input value depending on list order in jQuery

本文关键字:输入 顺序 列表 jQuery 根据      更新时间:2023-09-26

我昨天问了一个问题,我意识到这个问题没有多大意义,所以我现在希望它简单多了!

我有一个无序的列表

<ul id="itemlist">
<li>item 1 <input type="hidden" name="slide-order[]" value="slide[]" /></li>
<li>item 2 <input type="hidden" name="slide-order[]" value="slide[]" /></li>
</ul>

这个可排序的脚本

$("#itemlist").sortable({
    change: function(event, ui){
         var sort = $('#itemlist').find('input');
         sort.each(function(index){
            $(this).val((index + 1));
         });
    }
});

我需要的是,在移动列表项目时,值始终保持在1、2、3、4等顺序。因此,即使将项目2移到顶部,该值也将变为1。

我尝试了各种方法,但似乎都不起作用:/

类似的东西?

$("#itemlist").sortable({
    stop: function(event, ui){
        var cnt = 1;
        $(this).children('li').each(function(){
            $(this).children('input').val("slide["+cnt+"]");
            cnt++;
        });
    }
});

DEMO

试试这个

var sort = $('#itemlist').find('input');
sort.each(function(){
    var index = $(this).index();
    $(this).val((index + 1));
});