1
我是新来的jQuery,我想要一个未排序的列表,并执行以下操作:http://i.min.us/idAMoq.png在jQuery中通过字母分开未排序的列表?
如何完成基于开头字母的分隔列表项?
谢谢!
我是新来的jQuery,我想要一个未排序的列表,并执行以下操作:http://i.min.us/idAMoq.png在jQuery中通过字母分开未排序的列表?
如何完成基于开头字母的分隔列表项?
谢谢!
我用这个例子HTML:
<ul>
<li>Array</li>
<li>Beta</li>
<li>Application</li>
<li>Revolver</li>
<li>Pilot</li>
</ul>
包括在<head>
jQuery库:
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.4/jquery.min.js"></script>
的jQuery(UL后或$(function(){/*code here*/})
补充):
var output={};
$('ul li').each(function(i,v){
var l=$(this).text().substring(0,1).toUpperCase();
if(typeof(output[l])=="undefined") output[l]=[];
output[l].push($(this).text());
});
$('ul').empty();
for(var i in output){
$('ul').append('<li><p>'+i+'</p></li>');
for(var j in output[i]){
$('ul').append('<li>'+output[i][j]+'</li>');
}
}
并在最后你会得到这个HTML:
<ul>
<li><p>A</p></li>
<li>Array</li>
<li>Application</li>
<li><p>B</p></li>
<li>Beta</li>
<li><p>R</p></li>
<li>Relolver</li>
<li><p>P</p></li>
<li>Pilot</li>
</ul>
嗨,小更新,JS纯净版本应该与原型,jQuery的或没有任何工作:)
var output={},string="";
var myul=document.getElementById('list');
var myli=myul.getElementsByTagName('li');
for(var x=0;x<myli.length;x++){
var l=myli[x].innerHTML.substring(0,1).toUpperCase();
if(typeof(output[l])=="undefined") output[l]=[];
output[l].push(myli[x].innerHTML);
}
for(var i in output){
string+='<li><p>'+i+'</p></li>';
for(var j in output[i])string+='<li>'+output[i][j]+'</li>';
}
myul.innerHTML=string;
只要坚持它下面的代码,或以任何的onload /就绪声明。
干杯
G.
你的先生是个神!华丽的!非常感谢:) – FLX 2011-01-11 15:59:30