这很有趣,sorting links by content,但你会如何使用javascript进行操作?
抱歉,我的意思是:你有这个:
http://stackoverflow.com'> Stack Overflow
HTTP://www.google.com'>谷歌
你想要这个:
“”谷歌“”
“”Stack Overflow“”
...链接现已按链接按字母顺序排序。
答案 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标签之间对文本进行排序