一個簡單的解決辦法是做到以下幾點:
- 檢查與類的元素存在。如果沒有,則進行迭代,直到找到下一個最大元素並將元素添加到它。
如果你真的想要的性能,你可以做二進制搜索,這樣你就無法查詢DOM之多。
var data = '<li class="3"></li>';
var $ul = $('ul');
var num = 2;
var $li;
var $currentLi = $ul.find('li.' + num);
// Go through the iterative search if the li wasn't found.
if ($currentLi.length === 0) {
// Iterate and find the right spot
var $lis = $ul.find('li');
var elIndex = 0;
var currentNumber = $lis.first();
// Iterate until we found the sweet spot or we're at the end of the lis
while (currentNumber < num && elIndex < $lis.length) {
++elIndex;
$currentLi = $lis.eq(elIndex);
currentNumber = parseInt($currentLi.attr('class'));
}
// By here you will have the $currentLi found.
}
$currentLi.append(data);
如果保存在一個數組列表順序的解決方案可能是簡單的JavaScript,或者如果你知道列表的詳細信息。
雖然希望有所幫助。
類名應該以數字開頭 – Popnoodles
是的,有一個解決方案,但問題不清楚。 如果項目編號不存在,那麼做什麼 - 通過做出什麼決定找到放置數據的位置?如果它確實存在會發生什麼? – Popnoodles
結帳http://jsfiddle.net/arunpjohny/PTKTN/2/ –