2012-07-23 33 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()方法缺少分號。

相關問題