我有一个无序列表:
<li class="t-header" id = "BackLogList">
<ul>
<li class="t-header-description">Description</li>
<li class="t-header-project-name">Project Name</li>
<li class="t-header-Type">Type</li>
<li class="t-header-priority">Priority</li>
<li class="t-header-status">Status</li>
</ul>
</li>
我需要选择所有li元素的html文本,并使用jquery对它们进行排序。
我该怎么做?
由于
答案 0 :(得分:2)
答案 1 :(得分:1)
您可以尝试这个简单的代码:
$('#BackLogList li').sort(function(a,b){return a.innerHTML > b.innerHTML ? 1 : -1;}).appendTo('#BackLogList ul');
答案 2 :(得分:0)
如果这是您的整个列表,我会将标记更改为:
<ul id="BacklogList">
<li class="t-header-description">Description</li>
<li class="t-header-project-name">Project Name</li>
<li class="t-header-Type">Type</li>
<li class="t-header-priority">Priority</li>
<li class="t-header-status">Status</li>
</ul>
答案 3 :(得分:0)
$('ul').children('li')
你可以得到他们的文字就像这样
$('ul').children('li').each(function(){
alert($(this).text())
})
关于如何排序他们的排序方式?
答案 4 :(得分:0)
你在找这样的东西吗?
$( '.t-header li' ).each( function() {
//Search algorithm where $( this ) is the current li that is handled
} );
答案 5 :(得分:0)
选择每个的html并将它们放入一个数组中:
var liArray = [];
$(".t-header li").each(function(){
liArray.push($(this).html());
});
//sort them (alphabetically):
liArray.sort();
答案 6 :(得分:0)
例如:
var items = $("ul li").map(function(){return $(this).text();}).get().sort();
答案 7 :(得分:0)
var ul = $('#BackLogList');
var lis = ul.children('li').get();
lis.sort(function(a,b){
var v1 = $(a).text(),v2 = $(b).text();
if(v1 === v2)
return 0;
return v1 < v2 ? 1 : -1;
});
ul.html(lis);
答案 8 :(得分:0)
将文本作为数组获取,以便按照您的意愿对它们进行排序。
lis = $('#BackLogList li');
text = $.map(lis, function(value, index) {
return $(value).text();
});
//"text" is now an array of texts