0

我正在使用 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]);
}
4

2 回答 2

2

你应该试试这个:

var sortedList = [];
$("div.resource").each(function(i, item) {
    var resource = $.trim($(this).text()).toLowerCase();
    sortedList.push(resource);
})
于 2012-07-23T20:35:54.153 回答
2

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

除此之外,它可能是浏览器问题。它适用于我在 chrome 中使用 html() 和 text()。虽然我确保元素中只有文本。

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

于 2012-07-23T20:43:09.047 回答