【发布时间】:2016-10-27 20:33:43
【问题描述】:
我的目标是对这个 div 进行排序
<div id="myDiv">3xOrange;2xBlue;1xRed;1xRed;1xRed;1xOrange;2xBlue;3xRed;1xBlue;1xRed;2xBlue;3xRed;1xBlue;1xRed;2xBlue;3xRed;1xBlue;1xRed;2xBlue;3xRed;1xBlue;1xRed;2xOrange;3xRed;1xBlue;1xRed;2xBlue;3xRed;1xBlue;1xRed;20xBlue;33xRed;20xBlue;33xRed;2xBlue;3xRed;51xBlue;51xRed;</div>
按此顺序由另一个 div
<div id="array"> Blue: 1,Red: 2,Orange: 3, </div>
所以我想要的结果是得到这样的结果
2xBlue;1xBlue;1xBlue;2xBlue;3xRed;3xRed;1xRed;1xRed;2xOrange;3xOrange ......
我知道第一个 div 需要使用类似这样的字符串拆分 .split('x')[1];
到目前为止,我有这个代码:
var init_arr;
var scorer;
window.onload=function() {
scorer=document.getElementById("array").innerHTML;
init_arr = document.getElementById("myDiv").innerHTML;
var final_arr = init_arr.sort(function(a,b) {
return scorer[a]-scorer[b];
});
}
alert(final_arr);
但出现错误TypeError: init_arr.sort is not a function 我猜 init_arr 和 scorer 是对象而不是字符串
请帮忙
【问题讨论】:
-
你没有数组,
innerHTML返回一个字符串 -
.sort适用于数组,而不是字符串。 -
所以这意味着这根本行不通?
-
除非你创建一个数组,例如通过拆分字符串
-
我想要的结果就在我的问题中,基本上将所有颜色一起订购 2xBlue;1xBlue;1xBlue;2xBlue;3xRed;3xRed;1xRed;1xRed;2xOrange;3xOrange ...... in第二个字符串的顺序
标签: javascript jquery arrays sorting