2012-07-23 38 views
0

我正在使用jquery将一组元素的文本提取到数组中,并希望在将元素插入数组后将它们排序。但是,排序不起作用(因为排序后数组保持不变)。怎么了?代码摘录如下:为什么以下Javascript排序代码无效?

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]); 
} 
+3

请在数组中创建一个示例... – davidbuzatto 2012-07-23 20:24:50

+0

您可以在console.log中使用数组...('console.log(sorted);') – 2012-07-23 20:26:11

+3

适用于我:http://jsfiddle.net/rxRFm/ – 2012-07-23 20:26:26

回答

2

你应该试试这个:

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

除了建议使用文本()而不是HTML()和修剪字符串,在jQuery的包裹一切文档就绪功能,这将提供元素和jQuery库时间加载(如果你还没有这样做)。

除此之外,它可能是一个浏览器问题。它适用于使用html()和text()的chrome。尽管我确信元素中只有文本。

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