我使用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]);
}
答案 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()方法缺少一个分号。