use*_*099 5 javascript sorting
我正在尝试单独学习Javascript,所以请不要建议使用库或jQuery.
我有一个div列表,我希望用户能够按其值对它们进行排序.例如:
<button onclick="sort();">Test</button>
<div class="num">2</div>
<div class="num">3</div>
<div class="num">8</div>
<div class="num">1</div>
Run Code Online (Sandbox Code Playgroud)
JS:
function sort(){
var elements = document.getElementsByClassName("num");
elements.sort();
}
Run Code Online (Sandbox Code Playgroud)
我找不到对这个问题的直接回答.是否getElementsByClassName
返回具有该名称的每个div的值的数组?那么,当数组被排序时,我如何反映div中的变化?
你不能sort()
在NodeList上使用这个函数,这是你通过调用实际获得的getElementsByClassName
var elems = document.getElementsByClassName("num");
// convert nodelist to array
var array = [];
for (var i = elems.length >>> 0; i--;) {
array[i] = elems[i];
}
// perform sort
array.sort(function(a, b) {
return Number(a.innerHTML) - Number(b.innerHTML);
});
// join the array back into HTML
var output = "";
for (var i = 0; i < array.length; i++) {
output += array[i].outerHTML;
}
// append output to div 'myDiv'
document.getElementById('myDiv').innerHTML = output;
Run Code Online (Sandbox Code Playgroud)
当然,如果你正在使用jQuery,它会更容易.请参阅jQuery - 对div内容进行排序
归档时间: |
|
查看次数: |
1521 次 |
最近记录: |