为什么下面的Javascript排序代码不起作用?

时间:2012-07-23 20:22:45

标签: javascript sorting

我使用jquery将一组元素的文本提取到数组中,并希望在将元素插入数组后对它们进行排序。但是,排序不起作用(如数组在排序后保持相同的顺序)。怎么了?代码摘录如下:

var sortedList = [];
$("div.resource").each(function(i, item) {
    var resource = $(this).html().toLowerCase();
    sortedList.push(resource);
})

// Add the new item 
sortedList.push(resource_name.toLowerCase());

alert("before sort");
for (var i = 0; i < sortedList.length; i++) {
    alert(sortedList[i]);
}

// Sort the list
sorted = sortedList.sort();

alert("after sort");
for (var i = 0; i < sorted.length; i++) {
    alert(sorted[i]);
}

2 个答案:

答案 0 :(得分:2)

你应该试试这个:

var sortedList = [];
$("div.resource").each(function(i, item) {
    var resource = $.trim($(this).text()).toLowerCase();
    sortedList.push(resource);
})

答案 1 :(得分:2)

除了使用text()而不是html()并修剪字符串的建议之外,在jQuery Document Ready函数中包装所有内容,这将给元素和jQuery库加载时间(如果你还没有完成了)。

除此之外,它可能是一个浏览器问题。它适用于使用html()和text()的chrome。虽然我确保元素中只包含文字。

也可能不是一个大问题,但你的.each()方法缺少一个分号。