如何按链接对链接数组进行排序

How to sort an array of links by link?

本文关键字:链接 排序 何按 数组      更新时间:2023-09-26

这很有趣,按内容对链接进行排序,但是如何使用javascript呢?

对不起,我的意思是:你有这个:
http://stackoverflow.com '>堆栈溢出
http://www.google.com '>谷歌
你想要这个:
"谷歌"
"栈溢出"
…这些链接现在已经按照链接的字母顺序进行了排序。

不知道为什么这不起作用:((使用一些代码从最有效的方式转换一个HTMLCollection数组)

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>

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

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标记之间的文本进行排序

我不知道你在问什么。你只是想排序一个数组?

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