我有这样的事情:

<div class="list-group list">
    <a href="blabla" id="1" data-order="1">Hello</a>
    <a href="blabld" id="2" data-order="2">World</a>
</div>


不,我尝试使用纯Javascript动态更改链接的顺序。

有人有任何建议吗?

我的目标是:

<div class="list-group list">
    <a href="blabld" id="2" data-order="1">World</a>
    <a href="blabla" id="1" data-order="2">Hello</a>
</div>

最佳答案

干得好:

function sort(r) {
    var $list = document.getElementsByClassName('list')[0];
    var listGroupA = document.getElementsByTagName('a');
    var $listGroupA = [];
    for (var i = 0; i < listGroupA.length; ++i) {
        $listGroupA.push(listGroupA[i]);
    }
    $listGroupA.sort(function (a, b) {

        return r * (a.getAttribute('data-order') - b.getAttribute('data-order'));

    });
    for (var i = 0; i < $listGroupA.length; i++) {
        $list.removeChild($listGroupA[i]);
    }
    for (var i = 0; i < $listGroupA.length; i++) {
        $list.appendChild($listGroupA[i]);
    }
}
var reverse = 1;
$('#sort').click(function () {

    reverse = reverse * -1;
    sort(reverse);
});


还有fiddle

09-25 15:08