2015-09-14 90 views
0

为了我有这样的事情:如何动态地更改链接

<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> 
+0

可能重复http://stackoverflow.com/questions/25850389/how- i-can-change-child-elements-order-in-js) – Mattias

+0

哦,等待,纯JS和不jQuery ...抱歉,不是重复。我如何取消标志? – Anders

回答

1

在这里你去:

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

的[?我怎样才能改变子元素的JS订购(
0

您可以删除最后一个列表项,创造一个更加项,并将其追加到div容器是这样的:

var world = document.getElementById("2"); 
var id = world.id; 
var data = world.getAttribute("data-order"); 
var div = document.getElementsByClassName("list")[0]; 

div.removeChild(world); 
var newA = document.createElement("a"); 
div.appendChild(newA); 
newA.id = id; 
newA.dataset.order = data; 
0

JSFiddle Example

Reorder = function() 
{  
    var x = document.getElementsByTagName('a'); 
    document.getElementsByClassName('list').innerHTML = ""; 
    var content = ""; 
     for(i = x.length; i > 0; i--) 
     { 
      content = content + x[i - 1].outerHTML; 
     } 
    document.getElementsByClassName('list').innerHTML = content; 
} 

上面的代码将把现有的项目放入一个数组并清除内容。现在,他们将被添加到分区。我在这里使用了classname将它添加到div中。