1
我有一個問題。我需要創建一個JavaScript來按字母順序排列無序列表。我用下面的函數來實現這一點:按字母排序列表
$(function() {
var $list = $(document.getElementsByClassName("list"));
$list.children().detach().sort(function (a, b) {
return $(a).text().localeCompare($(b).text());
}).appendTo($list);
});
然而,在客戶的設計上有這些名單是其他項目的「孩子」的幾個項目,有如下設置:
<ul>
<li>alpha</li>
<li>gama</li>
<li>beta</li>
<li style="margin-right: 5px;">beta1</li>
</ul>
關於代碼,所有的項目都在同一個列表中,但是對於用戶來說,「beta1」稍微向右一點,並且與其他樣式相結合,它使它看起來像是一個子項目。
使用上面的函數,它將對所有項目進行排序。換句話說,「beta1」將與「父母」一起排序。
我嘗試了幾件事情沒有成功,所以有誰知道我該如何實現這個?即我的函數需要檢查一個列表項是否具有應用的樣式,如果是,它將把它附加到前一個列表項並將其作爲一個排序。
謝謝!
我不知道這是不是在你的解決方案合理,但我想有一個'數據父=「」'屬性上的任何子項,這樣你刪除很多複雜性。 – DBS
檢查此! http://jsfiddle.net/stodolaj/De8Ku/ –