jQuery:为什么这个警报没有被解雇?

时间:2012-09-16 05:27:47

标签: jquery jquery-ui

破解演示:http://jsfiddle.net/sTzCS/52/

如果你去小提琴,你应该能够将列表中的团队拖放到新的订单中。您还可以输入您认为每支球队在整个赛季中获得的积分值。完成重新排列后,jQuery会读取排序顺序,并且它还会尝试获取每个团队的输入值。

小提琴中的警报(我为测试目的创建的)应该显示您放在第一位置的团队以及您希望他们获得的积分数量。但是,警报没有触发。 jLint说代码是有效的。我正在使用警报来确保我实际上获得了正确的值。你能解释为什么警报不起作用吗?

<form<form id="new_entry">

<ul id="sortlist">

        <li id="Vancouver">Canucks<input type="text" name="name" id="vanpoints"></li>
        <li id="Toronto">Toronto<input type="text" name="name" id="torontopoints"></li>
        <li id="Montreal">Montreal<input type="text" name="name" id="montrealpoints"></li>
        <li id="Ottawa">Ottawa<input type="text" name="name" id="ottawapoints"></li>
        <li id="Calgary">Calgary<input type="text" name="name" id="calgarypoints"></li>
        <li id="Edmonton">Edmonton<input type="text" name="name" id="edmontonpoints"></li>
        <li id="Winnipeg">Winnipeg<input type="text" name="name" id="winnipegpoints"></li>
</ul>
<input type="submit" value="Add">
</form>

的jQuery

$("#sortlist").sortable({
    stop: function(event, ui) {
        result = $("#sortlist").sortable("toArray");
        var attributes;
        attributes = {
            first: { team: result[0].id, value: result[0].children()[0].val() },
       second : { team: result[1].id, value: result[1].children()[0].val() },
        third: { team: result[2].id, value: result[2].children()[0].val() },
        fourth: { team: result[3].id, value: result[3].children()[0].val() },
        fifth: { team: result[4].id, value: result[4].children()[0].val() },
        sixth: { team: result[5].id, value: result[5].children()[0].val() },
        seventh: { team: result[6].id, value: result[6].children()[0].val() }
        };

        alert(attributes.first.team + attributes.first.value);
    }
});

1 个答案:

答案 0 :(得分:1)

$("#sortlist").sortable("toArray")返回一个可排序项ID'数组,它是一个字符串数组。

字符串没有id属性和children方法。