如何通过链接对链接数组进行排序?

时间:2011-04-29 14:48:46

标签: javascript

这很有趣,sorting links by content,但你会如何使用javascript进行操作?

抱歉,我的意思是:你有这个:
http://stackoverflow.com'> Stack Overflow
HTTP://www.google.com'>谷歌
你想要这个:
“”谷歌“” “”Stack Overflow“” ...链接现已按链接按字母顺序排序。

3 个答案:

答案 0 :(得分:1)

不确定为什么这不起作用:((使用Most efficient way to convert an HTMLCollection to an Array中的一些代码)

function sortAsc(a, b) {
  if (a.innerHTML > b.innerHTML) return 1;
  if (a.innerHTML === b.innerHTML) return 0;
  if (a.innerHTML < b.innerHTML) return -1;
}

function sortDsc(a, b) {
  if (a.innerHTML > b.innerHTML) return -1;
  if (a.innerHTML === b.innerHTML) return 0;
  if (a.innerHTML < b.innerHTML) return 1;
}

function $A(iterable) {
  if (!iterable) return [];
  if ('toArray' in Object(iterable)) return iterable.toArray();
  var length = iterable.length || 0,
    results = new Array(length);
  while (length--) results[length] = iterable[length];
  return results;
}


function sortLinks(containerId, dir) {
  var linksCollection = document.getElementById(containerId).getElementsByTagName('a');
  var links = $A(linksCollection)
  document.getElementById(containerId).innerHTML = links.sort(dir === "a" ? sortAsc : sortDsc).join('');
  return false;
}
<div id="sort-this-div">
  <a href="http://something45yer.com">Content3</a>
  <a href="http://somethingeyerty.com">Content1</a>
  <a href="http://somethingfwegrw.com">Content2</a>
  <a href="http://somethingt43rwer.com">Content4</a>
</div>
<a href="#" onclick="return sortLinks('sort-this-div','a')">Ascending</a>
<a href="#" onclick="return sortLinks('sort-this-div','d')">Descending</a>

答案 1 :(得分:0)

我不确定你在问什么。你只想对数组进行排序?

["Stack Overflow", "Google"].sort()

答案 2 :(得分:0)

一旦你有一个链接数组,那么一个例子就是

jQuery的:

$('a').sort(function(a, b) { 
  a = a.text; b = b.text; 
  return a < b ? -1 : a > b ? 1 : 0; 
});

Array().slice.call(document.getElementsByTagName('a')).sort(function(a, b) { 
  a = a.text; b = b.text; 
  return a < b ? -1 : a > b ? 1 : 0; 
});

使用jQuery或其他任何方法获取链接数组

然后它在a标签之间对文本进行排序