这样行么,刚做的,呵呵(IE6通过)
<div id=divA>Aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa</div>
<div id=divC>Cccccccccccccccccccc</div>
<div id=divB>Bbbbbbbbbbbbbbb</div>
<div id=divE>Eeeeeeeeeee</div>
<div id=divD>Ddddddd</div>
<script>
/******(qiushuiwuhen 2002-5-23)*******/
var objs=document.all.tags("div"),arr=[];
var startX=0,startY=40,maxX=400,stepY=20;
for(i=0;i<objs.length;i++)arr[i]=objs[i].id;
arr.sort();
for(i=0;i<arr.length;i++)
with(document.all(arr[i])){
style.position="absolute"
style.pixelLeft=startX;
style.pixelTop=startY;
startX+=offsetWidth;
if(startX>maxX){startX=0;startY+=stepY}
}
</script>

解决方案 »

  1.   

    要给分哦<html>
    <head>
    </head>
    <body>
      <button onclick="clkName()">name</button>
      <button onclick="clkType()">type</button>
      <div name=a1 type=a4 style="background-color:#aaccee">name:a1-type:a4</div>  
      <div name=a2 type=a3 style="background-color:#aaddee">name:a2-type:a3</div>  
      <div name=a3 type=a2 style="background-color:#bbccee">name:a3-type:a2</div>  
      <div name=a4 type=a1 style="background-color:#aaffaa">name:a4-type:a1</div>  
    </body>
    </html><script language="javascript">
      function clkName(){
        var divArr = new Array()
        var i,j,obj
        for(i=0;i<document.body.children.length;i++){
          if(document.body.children[i].tagName == "DIV"){
        divArr[divArr.length] = document.body.children[i]
      }
        }
    for(i=0;i<divArr.length;i++){
      for(j=i;j<divArr.length;j++){
    if(divArr[i].name<divArr[j].name){
      obj = divArr[i]
      divArr[i] = divArr[j]
      divArr[j]=obj
    }
      }
    }
    for(i=0;i<divArr.length;i++){
      document.body.appendChild(divArr[i])
    }
      }
      function clkType(){
        var divArr = new Array()
        var i,j,obj
        for(i=0;i<document.body.children.length;i++){
          if(document.body.children[i].tagName == "DIV"){
        divArr[divArr.length] = document.body.children[i]
      }
        }
    for(i=0;i<divArr.length;i++){
      for(j=i;j<divArr.length;j++){
    if(divArr[i].type<divArr[j].type){
      obj = divArr[i]
      divArr[i] = divArr[j]
      divArr[j]=obj
    }
      }
    }
    for(i=0;i<divArr.length;i++){
      document.body.appendChild(divArr[i])
    }
      }
    </script>
      

  2.   

    多谢二位,
    to qiushuiwuhen(秋水无恨) :你的那段程序,怎么还没有到页面的边界就已经折行了?
    to rocsnake(dp):呵呵...我一定会给分的。如果我将div打乱顺序,也就是说可以放在页面的任何部分,还能实现我说的效果吗
      

  3.   

    这就要看你的要求了,对于JavaScript,很多东西都能控制,主要就要看自己的算法如何了!有问题可以多聊聊。
      

  4.   

    你的最终目的是什么?看看下面代码对你有没有帮助<body topmargin=0 leftmargin=0 rightmargin=0 >
    <TABLE cellSpacing=0 cellPadding=0 width="100%" align=center border=0 style="word-break:break-all">
    <tr><td>
    <div>
    斯大林附加赛对立法;联赛看东方所对立法;记阿瑟琳;对方可见;劳动服金卡所;两顿开房间科;拉萨地方军;萨迪克福建阿瑟离开;接的发送;对立法进口撒;对立法将阿瑟;封口机萨迪克立法局; 
    </div>
    </td></tr>
    </TABLE>
      

  5.   

    可能是我没说清楚,我就是想将几个同样大小的div块,通过几个按钮让他们按照拼音顺序横向排序、对齐,如果超出页面的右边界会自动折行,还可以通过拖动每个div来改变它们的位置,可是不管怎么变,只要通过这几个按钮就可以将它们重新排列,可以实现吗,不如象这样的N个div:
    <div><table><tr><td>
                    <table cellSpacing="0" cellPadding="0" border="0">
                        <tr height="25">
                          <td class=class1 width="220" colSpan="3" height="25" align="center">
                          <font class=classfont>DIV1</font></td>
                        </tr>
                        <tr>
                          <td class=class1 width="220" colSpan="3" height="1"></td>
                        </tr>
                        <tr>
                          <td class=class1 width="1"></td>
                          <td class=classbody align="middle" width="218" height="215"></td>
                          <td class=class1 width="1"></td>
                        </tr>
                        <tr>
                          <td class=class1 width="220" colSpan="3" height="1"></td>
                        </tr>
                    </table></div>
      

  6.   

    var startX=0,startY=40,maxX=400,stepY=20;设定maxX,到多长换行
    设定stepY,换行Y加多长to weidegong(weidegong) :你的最终目的是什么?
    比如一堆的div,重组成排序的
      

  7.   

    var startX=0,startY=40,maxX=400,stepY=20;设定maxX:到多长换行
    stepY:每换行加多长