0

Sortable jQuery を使用して並べ替えリストを作成しました。再注文後、LIアイテムの新しい注文を取得したいです。どうすればこれを達成できますか?

<li id="A1" class="ui-state-default">Item 2</li>
  <li id="A2" class="ui-state-default">Item 3</li>
  <li id="A3" class="ui-state-default">Item 4</li>
  <li id="A4" class="ui-state-default">Item 5</li>
4

4 に答える 4

2

これにより、各liのIDとインデックスを含むオブジェクトの配列が得られます。

var order = $('li').map(function(i) { 
    return { id: this.id, index: i };
}).get();

-http://jsfiddle.net/czprf/

于 2013-03-08T09:04:02.480 に答える
0

stop必要なのは、ソート可能なプラグインのイベントにアクセスすることです。

var order;
$('#sortable').sortable({
    stop: function(){
        order = $('#sortable li').map(function(i, li){
            return {index: i, id: li.id, text: li.innerHTML};
        });
        console.log(order);
    }
});

これがあなたのjsFiddleです;

于 2013-03-08T09:18:48.160 に答える
0

jQueryでそれらを選択すると、新しい順序でそれらを取得します。

var myLis = $('.ui-state-default');

myLis.eq(0).html(); // This will return Item 2
myLis.eq(1).html(); // This will return Item 3
myLis.eq(2).html(); // This will return Item 4
myLis.eq(3).html(); // This will return Item 5

jQueryは常に、DOMの最上位に最も近い要素を最初に選択します。

于 2013-03-08T09:03:11.703 に答える
0

このようにしてみてください:

<ul id="AAA">
  <li id="A1" class="ui-state-default">Item 2</li>
  <li id="A2" class="ui-state-default">Item 3</li>
  <li id="A3" class="ui-state-default">Item 4</li>
</ul>

J:

var nodeList = Array.prototype.slice.call( document.getElementById('AAA').children ),
      liRef = document.getElementsByClassName('match')[0];    
console.log( nodeList.indexOf( liRef ) );
于 2013-03-08T09:06:22.143 に答える