【发布时间】:2011-02-22 00:31:43
【问题描述】:
我有一个 DIV 列表,如下所示:
<div id="list">
<div id="categorie5.1-4">4</div>
<div id="categorie5.1-3">3</div>
<div id="categorie5.1-5">5</div>
<div id="categorie5.1-1">1</div>
<div id="categorie5.1-2">2</div>
</div>
我想对它们进行排序,只使用 Javascript(没有 Jquery)得到这样的结果:
1
2
3
4
5
如果需要,我可以使用 DIV id 的结尾:“categorie5.1-4”(服务器端我可以定义 DIV id 以嵌入想要的顺序)
非常感谢您的帮助!
这是完整的代码:
<html>
<head>
<script type="text/javascript">
function sortdiv() {
var container = document.getElementById("list");
var elements = container.childNodes;
var sortMe = [];
for (var i=0; i<elements.length; i++) {
if (!elements[i].id) {
continue;
}
var sortPart = elements[i].id.split("-");
if (sortPart.length > 1) {
sortMe.push([ 1 * sortPart[1] , elements[i] ]);
}
}
sortMe.sort(function(x, y) {
return x[0] - y[0];
});
for (var i=0; i<sortMe.length; i++) {
container.appendChild(sortMe[i][1]);
}
document.getElementById("button").innerHTML = "done.";
}
</script>
</head>
<body>
<div id="list">
<div id="categorie5.1-4">4</div>
<div id="categorie5.1-3">3</div>
<div id="categorie5.1-5">5</div>
<div id="categorie5.1-1">1</div>
<div id="categorie5.1-2">2</div>
</div>
<div id="button"><a href="#" onclick="sortdiv();">sort!</a></div>
</body>
</html>
【问题讨论】:
-
“一束”10、100、1000有多少?
-
您知道,您可能应该将最终代码移至 answer。 (作为奖励,你会得到更多的代表!)
标签: javascript