var data = [{tag:1},{tag:2},{tag:1}];
成都创新互联公司长期为成百上千客户提供的网站建设服务,团队从业经验10年,关注不同地域、不同群体,并针对不同对象提供差异化的产品和服务;打造开放共赢平台,与合作伙伴共同营造健康的互联网生态环境。为龙陵企业提供专业的做网站、成都网站制作,龙陵网站改版等技术服务。拥有十余年丰富建站经验和众多成功案例,为您定制开发。
var $strs='', $strs2='', $len=data.length;
for(var i=0;i$len;i++)
{
if(data[i])
{
if(data[i]['tag']==2){
$strs2 += "li class='date_m:last'pddd/li";
}else{
$strs += "li class='date_m'pddd/li";
}
}
}
$strs += $strs2;
//"li class='date_m'pddd/lili class='date_m'pddd/lili class='date_m:last'pddd/li"
将tag=2的数据单独存一个变量,最后再拼接到$strs后边。
还有一个方法是先对data数组进行排序,再做循环。
data = data.sort( function(a, b){
return a.tag - b.tag; //按每个数组项下的tag做排序
});
思路:
1、利用jquery选择器获取li数组和ul节点
2、通过数组的sort方法对li进行排序
3、根据ul节点,清空原来li,再把排序后的li节点添加进去
代码:
script
function onTest(){
var arr = $('li');
arr.sort(function(a,b){
return a.innerHTMLb.innerHTML?1:-1;
});//对li进行排序,这里按照从小到大排序
$('ul').empty().append(arr);//清空原来内容添加排序后内容。
}
/script
/head
body
ul
lib/li
lia/li
lid/li
lic/li
/ul
a onclick="onTest();"按钮/a
/body
/html
!DOCTYPE html
html
head
meta http-equiv="Content-Type" content="text/html; charset=UTF-8"
script class="jquery library" src="/js/sandbox/jquery/jquery-1.8.2.min.js" type="text/javascript"/script
titleRunJS 演示代码/title
script
$(function() {
var ic = $(".item_content");
var divs = ic.find("div");
var arr = divs.get();
arr.sort(function(a, b) {
var ai = parseFloat($(a).attr("index"), 10);
var bi = parseFloat($(b).attr("index"), 10);
if (ai bi) {
return 1;
} else if (ai bi) {
return -1;
} else {
return 0;
}
});
ic.append(arr);
});
/script
/head
body
div class='item_content'
div index="131"1/div
div index="01"2/div
div index="12"3/div
div index="13"4/div
div index="31"5/div
div index="31"6/div
div index="17"7/div
/div
/body
/html
如果想实现排序,你可以通过用ol的属性进行排序。下面是个小例子:
body
ul id="ul"
ol id="1"li1111111/li/ol
ol id="4"li2222222/li/ol
ol id="3"li3333333/li/ol
ol id="2"li4444444/li/ol
/ul
/body
script
var oUl = document.getElementById('ul');
var aOl = oUl.children; //aOl 是一个元素集合,只是有数组的方法。但不具备sort
var arr = [];
for(var i=0;iaOl.length;i++)
{
arr.push(aOl[i]);
}
arr.sort(function(a,b){return a.id - b.id}); //这里用了数组的sort排序。
for(var i=0;iarr.length;i++)
{
oUl.appendChild(arr[i]); //重新加入oUl中。排序成功
}
/script
利用jQuery对无序列表排序的原理:
获取到无序列表中的所有列表项,并转成数组形式,使用JavaScript函数对其进行排序后再次输出。其中使用到的jQuery函数有ready()、get()、text()、each()、append()和JavaScript函数sort()。
1)jQuery函数get()--获取匹配元素集合
该函数取得所有匹配元素的一种向后兼容的方式(不同于jQuery对象,实际上是元素数组)。
2)jQuery函数text()--获取和设置元素内容
该函数获取和设置匹配元素的文本内容。
3)jQuery函数append()--向元素追加内容
该函数向每个匹配的元素内部追加内容。
4)JavaScript函数sort()--元素排序
用于对数组元素进行排序。
实现无序列表项排序功能的步骤如下。
(1)获取所有的列表项,并将其装入数组。
(2)对数组对象进行排序。
(3)将排好序的数组重新填充到无序列表中。