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

时间:2013-07-30 07:59:16

标签: javascript jquery events jquery-ui-sortable

我昨天问了一个问题,我发现这个问题并没有多大意义,所以我现在希望它变得更简单了!

我有一个无序列表

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

我尝试了各种方法,但似乎没有任何工作:/

2 个答案:

答案 0 :(得分:4)

这样的东西?

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

<强> DEMO

答案 1 :(得分:0)

试试这个

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