2012-06-04 20 views
0

我試圖從我的可排序元素中創建一個有序數組,但'toArray'方法不起作用。這裏是我排序的html代碼:JQuery UI .sortable('toArray')返回HTMLUListElement而不是ID數組

<div class="control-group" style="cursor:pointer;"> 
    <label class="control-label" for="input-sort">Preferences</label> 
      <div class="controls"> 
      <ul id= "sortable"> 
        <li class="ui-state-default" id="Item1"><span class="ui-icon ui-icon-arrowthick-2-n-s"></span>Item 1</li> 
        <li class="ui-state-default" id="Item2"><span class="ui-icon ui-icon-arrowthick-2-n-s"></span>Item 2</li> 
        <li class="ui-state-default" id="Item3"><span class="ui-icon ui-icon-arrowthick-2-n-s"></span>Item 3</li> 
        <li class="ui-state-default" id="Item4"><span class="ui-icon ui-icon-arrowthick-2-n-s"></span>Item 4</li> 
        <li class="ui-state-default" id="Item5"><span class="ui-icon ui-icon-arrowthick-2-n-s"></span>Item 5</li> 
        <li class="ui-state-default" id="Item6"><span class="ui-icon ui-icon-arrowthick-2-n-s"></span>Item 6</li> 
        <li class="ui-state-default" id="Item7"><span class="ui-icon ui-icon-arrowthick-2-n-s"></span>Item 7</li> 
      </ul> 
      </div> 
    </div> 

,這裏是相應的JavaScript:

<script> 
    var result=$("#sortable").sortable("toArray"); 
    $("#sortable").sortable({ 
     stop: function(event, ui) { 
      document.getElementById("info").innerHTML=result + " and " + result[0]; 
     } 
    }); 
</script> 

當我的顯示效果,則返回[對象的對象]和[對象HTMLLIElement]我甚至嘗試了分配結果$ (「可排序李」),但它沒有返回任何元素。 任何幫助表示讚賞。謝謝。

+1

嗯...你忘了在這裏包括代碼?你不會在任何地方調用'.sortable('toArray')'。 'result'被設置爲一個jQuery對象,所以alert應該是'[object Object]' –

回答

3

你的代碼沒有任何邏輯意義,但我認爲這是你正在追求的。

$("#sortable").sortable({ 
    stop: function(event, ui) { 
     $("#info").html(JSON.stringify($("#sortable").sortable('toArray'))); 
    } 
}); 

不過請注意它不會在IE 8 <,除非你包括JSON庫工作。

在您的代碼中,結果永遠不會更新,因此它將始終包含jquery對象,它始終是一個對象而不是數組的值。