我正在尝试从可排序元素中创建一个排序数组,但'toArray'方法不起作用。这是我的可排序的HTML代码:
<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>
当我显示结果时,它返回[object Object]和[object HTMLLIElement],我甚至尝试将结果分配给$(“sortable li”),但它没有返回任何元素。 任何帮助表示赞赏。感谢。
答案 0 :(得分:3)
你的代码没有任何逻辑意义,但我认为这就是你要追求的目标。
$("#sortable").sortable({
stop: function(event, ui) {
$("#info").html(JSON.stringify($("#sortable").sortable('toArray')));
}
});
但请注意,除非包含JSON库,否则它将无法在IE&lt; 8中使用。
在你的代码中,结果永远不会更新,因此它总是包含jquery对象,它始终是一个对象,而不是一个值数组。