JQuery UI .sortable('toArray')返回HTMLUListElement而不是id的数组

时间:2012-06-04 17:39:39

标签: javascript jquery html jquery-ui

我正在尝试从可排序元素中创建一个排序数组,但'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”),但它没有返回任何元素。 任何帮助表示赞赏。感谢。

1 个答案:

答案 0 :(得分:3)

你的代码没有任何逻辑意义,但我认为这就是你要追求的目标。

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

但请注意,除非包含JSON库,否则它将无法在IE&lt; 8中使用。

在你的代码中,结果永远不会更新,因此它总是包含jquery对象,它始终是一个对象,而不是一个值数组。

相关问题