Jquery 如何实现ul中的ol排序?

如下列代码:
<ul>
<ol>五<span>5</span></ol>
<ol>四<span>4</span></ol>
<ol>二<span>2</span></ol>
<ol>三<span>3</span></ol>
<ol>一<span>1</span></ol>
</ul>
数据库取出是这个样子,我想最后用Jquery控制输出到页面达到下面的效果:
<ul>
<ol>一<span>1</span></ol>
<ol>二<span>2</span></ol>
<ol>三<span>3</span></ol>
<ol>四<span>4</span></ol>
<ol>五<span>5</span></ol>
</ul>
span这个标签可有可无!

如果想实现排序,你可以通过用ol的属性进行排序。下面是个小例子:
<body>
<ul id="ul">
    <ol id="1"><li>1111111</li></ol>
    <ol id="4"><li>2222222</li></ol>
    <ol id="3"><li>3333333</li></ol>
    <ol id="2"><li>4444444</li></ol>
</ul>
</body>
<script>
var oUl = document.getElementById('ul');
var aOl = oUl.children;    //aOl æ˜¯ä¸€ä¸ªå…ƒç´ é›†åˆï¼Œåªæ˜¯æœ‰æ•°ç»„的方法。但不具备sort
var arr = [];
for(var i=0;i<aOl.length;i++)
{
arr.push(aOl[i]);
}
arr.sort(function(a,b){return a.id - b.id});  //这里用了数组的sort排序。
for(var i=0;i<arr.length;i++)
{
oUl.appendChild(arr[i]);   //重新加入oUl中。排序成功
}
</script>
温馨提示:内容为网友见解,仅供参考
第1个回答  2012-04-27
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>无标题文档</title>
<script type="text/javascript" src="jquery.1.4.4.min.js" ></script>
<script type="text/javascript">
$(function(){
$("#ci").click(function(){
var ols = new Object();
var ts = new Array();
$("#px").find("ol").each(function(i,v){
var sp = $(v).find("span").text();
ts.push(sp);
ols[sp] = $(v);
});
ts.sort();//数组的内部排序
$("#px").empty();
for(var k=0;k<ts.length;k++){
ols[ts[k]].appendTo($("#px"));
}

});
})
</script>
</head>

<body>
<button id="ci" >click it</button>
<ul id="px">
<ol>五<span>5</span></ol>
<ol>四<span>4</span></ol>
<ol>二<span>2</span></ol>
<ol>三<span>3</span></ol>
<ol>一<span>1</span></ol>
</ul>

</body>
</html>本回答被提问者采纳
第2个回答  2012-04-27
这是甚麼东西 @@

<ul> 的层级辈份等同於 <ol>
所以 LZ 应该用
<ol>
<li> </li>
</ol>
或者
<ul>
<li> </li>
</ul>

LZ 的 syntax error 了,如果 JQuery 要控制输出的页面变成 <ol>
你先把数据库输出的源码贴出来看看

Jquery 如何实现ul中的ol排序?
如果想实现排序,你可以通过用ol的属性进行排序。下面是个小例子:<body><ul id="ul"> <ol id="1"><li>1111111<\/li><\/ol> <ol id="4"><li>2222222<\/li><\/ol> <ol id="3"><li>3333333<\/li><\/ol> <ol id="2"><li>4444444<\/li><\/ol><\/ul><\/body><script>...

jQuery如何选择ul下前3个li我页面上有3个ul
(function() { ("ul").find("li:lt(3)").children("a").html("1");});这样就可以啦。

用js或者Jquery控制页面div中的ol元素数据横向循环显示?
ol元素横向循环很简单,只需要设置ol的高度和宽度,然后向左浮动就可以了,比较难的是文字方向自上而下,ie有一个属性可以设置,但是其他浏览器是没有的,我的思路就是ol的宽度刚好就设置成一个字的宽度,一般都是12px。现假设ul的id是ul_f 用:$('#ul_f > ol').css({'padding':'2px 9px...

如何用jquery对列表进行排序?
1、利用jquery选择器获取li数组和ul节点 2、通过数组的sort方法对li进行排序 3、根据ul节点,清空原来li,再把排序后的li节点添加进去 代码:<script>function onTest(){ var arr = $('li'); arr.sort(function(a,b){ return a.innerHTML>b.innerHTML?1:-1; });\/\/对li进行排序...

jquery如何获取ul中第一个li和最后一个li?
(1):first 举:$('div.one:first'),获取所有class="one"的Div的第一个div子元素。这里的限制在于父子元素都是同一种,即父元素如果是span标签,获取的第一个子元素也是span标签,如果父元素是table标签,获取的子元素也是table标签。(2):first-child 如:$('div.one:first-child'...

jquery方法,将 ul 下 第一个 li 放到最后?
jquery方法,将 ul 下 第一个 li 放到最后实现思路:先把ul下的第一个li保存下来,然后删除掉,把保存下来的li添加后ul里面

jquery如何实现点击LI标签和下面的LI互换顺序?
1、首先打开huilder软件,新建一个html文件,写入html的结构,先设置一个外层的div并设置class属性,div中在设置一个span标签显示标题,和一个无序列表:2、然后在上面的style标签中设置样式,外层的box设置宽度,间距和边框,标题设置颜色和字体倾斜,内容设置宽度、边框和盒子内外边距,并且把字体调即可:3...

JQuery中<style>ul{list-style:none;padding;0}是什么意思
ul 标签 定义无序列表。ol 标签 定义有序列表。list-style是list-style-type不加属性的简写 list-style-type 属性设置列表项标记的类型:none 无标记。disc 默认。标记是实心圆。circle 标记是空心圆。square 标记是实心方块。decimal 标记是数字。padding:0;就是上右下左 内边距的宽度...

使用jquery插件sortable做拖拽排序,将ul中的li排序。li中包含有input框...
这个需要看代码。可能是css或者js进行了限制,或者设置了readonly属性,如果方便,提供下代码,这样方便查找原因。

Jquery:要在指定DIV下的第二个P后面增加元素如何实现?
1、双击打开HBuilder并新建一个静态页面,在页面中引入jquery文件。2、在<body><\/body>标签内,插入一个div标签并在其中插入一个无序列表。3、接着在jQuery初始化函数中,利用jquery each函数遍历循环ul li。4、保存代码并在浏览器上查看页面显示的效果,可以发现只有几个无序列表项的点。5、再次添加...

相似回答