首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > JavaScript >

请问关于jquery对div重新排列的有关问题

2013-02-04 
请教关于jquery对div重新排列的问题假设我页面有下面的divdiv classtest name1div classtest

请教关于jquery对div重新排列的问题
假设我页面有下面的div

<div class="test" name='1'>
    <div class="test">a</div>    //嵌套的div没有name属性
</div>
<div class="test" name='2'>b</div>
<div class="test" name='3'>c</div>
<div class="test" name='5'>d</div>
<div class="test" name='7'>e</div>
<div class="test" name='4'>f</div>
<div class="test" name='8'>g</div>

此时的name是乱序的,我想让他显示的时候是按name从大到小的顺序显示的
应该用什么方法?
最好能带上备注,因为是初学者
[解决办法]


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <title></title>
    <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.5.2/jquery.min.js" type="text/javascript"></script>
    <script type="text/javascript">
        $(function () {
            var divTestJQ = $("#divTest"); //取得容器对象
            var divJQ = $(">div.test", divTestJQ); //取容器需要重排的对象
            var EntityList = []; //定义一个数组用于存放要排序的对象
            divJQ.each(function () {
                var thisJQ = $(this);
                EntityList.push({ Name: parseInt(thisJQ.attr("name"), 10), JQ: thisJQ }); //把要排序的对象和排序的值一起放到一个新的对象里,并存入到数组
            });
            EntityList.sort(function (a, b) { //利用数组的排序方法重新排序对象
                return b.Name - a.Name; //从大到小
                //return a.Name - b.Name; //从小到大
            });
            for (var i = 0; i < EntityList.length; i++) {
                EntityList[i].JQ.appendTo(divTestJQ); //把排序完的对象重新插入到容器对象
            };
        });
    </script>
</head>
<body>
    <div id="divTest">
        <div class="test" name='1'>
            <div class="test">
                a</div>
            //嵌套的div没有name属性
        </div>


        <div class="test" name='2'>
            b</div>
        <div class="test" name='3'>
            c</div>
        <div class="test" name='5'>
            d</div>
        <div class="test" name='7'>
            e</div>
        <div class="test" name='4'>
            f</div>
        <div class="test" name='8'>
            g</div>
    </div>
</body>
</html>


[解决办法]
引用:
引用:JavaScript code?12345678910111213141516171819202122232425262728293031323334353637383940414243444546<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http:……

只要你的name是数字,就用系统自带函数sort()就可以了

<script src="http://code.jquery.com/jquery-latest.js"></script>
<script type="text/javascript">
$(function(){
$("#abv").click(function(){
var ar=new Array();
var br=new Array();
$(".test").each(function(){
ar[ar.length]=$(this).attr("name");
});
br=ar.sort();
for(var i=br.length-1;i>=0;i--){
$("#div1").append($(".test[name="+br[i]+"]"));
}

});
})
</script>
<input type="button" id="abv" value="测试用按钮"/>
<div id="div1">
<div class="test" name='1'>
     <div class="test1">a</div>    
</div>
<div class="test" name='2'>b</div>
<div class="test" name='3'>c</div>
<div class="test" name='5'>d</div>
<div class="test" name='7'>e</div>
<div class="test" name='4'>f</div>
<div class="test" name='8'>g</div>
</div>

[解决办法]
引用:
引用:引用:引用:JavaScript code?12345678910111213141516171819202122232425262728293031323334353637383940414243444546<!DOCTYPE html PUBLIC "-//W……

只要是基于距1970年的毫秒数基准,不会有问题的,时间除了字符串形式,可以用毫秒数形式,也容易保存,在前台后台都有对应的方式转换成Date对象如java和javascript都有new Date(/*参数可以使是毫秒数*/)
然后调用Date.toLocaleString 或者toUTCString等等可以变成对应格式好的的时间字符串形式
[解决办法]
你理解是正确的

热点排行