如何通过列表项ID检查UL的顺序?

时间:2014-03-17 02:27:55

标签: javascript jquery

我有以下<ul>可以使用jQuery UI进行排序。

<ul id="sortable1" class='droptrue'>
    <li class="ui-state-default" id="item-3">K</li>
    <li class="ui-state-default" id="item-2">I</li>
    <li class="ui-state-default" id="item-4">E</li>
    <li class="ui-state-default" id="item-1">M</li>
</ul>

$("#sortable1").on( "sortstop", function( event, ui ) {
      check to see if the order of the ul is item-1 to item-4
} );

我想在用户重新安排订单以查看列表是否拼写MIKE之后进行检查,或者换句话说,ul是按照ID从第1项到第4项逐步安排的。有什么想法吗?干杯

3 个答案:

答案 0 :(得分:4)

$("#sortable1").on( "sortstop", function( event, ui ) {
    var word = '';
    $(this).children('li').each(function() {
        word += $(this).text();
    });
    if (word == "MIKE") {
        alert ("You win!");
    }
} );

答案 1 :(得分:0)

如果item-x索引始终为增量,请尝试

$("#sortable1").on("sortstop", function (event, ui) {
    var valid = true;
    $("#sortable1 > li").each(function (i) {
        if (this.id != 'item-' + (i + 1)) {
            valid = false;
            return false;
        }
    })
    if (valid) {
        console.log(valid)
    }
});

演示:Fiddle

答案 2 :(得分:0)

尝试:

$("#sortable1").sortable({
    stop: function (e, ui) {
        if($('li', this).text()==='MIKE') alert('MIKE');
    }
});

<强> jsFiddle example