ctrl多选就是返回ctrl选择过的“文件名称”的数组或者字符串。
比如你按住ctrl选择了a b c f t g那么就返回
"a,b,c,f,t,g"这样的字符串,然后对其处理。
另就是用数组
sArray.push("a");
.
.
.
.
.
sArray.push(g);
当然还有其他的办法。

解决方案 »

  1.   

    现在关键是一些细节上的处理,比如当选了几个后,放开ctrl,又另选一个,这种细节处理麻烦
      

  2.   

    rotApple(烂苹果) 谢了 兄弟
      

  3.   

    <html>
    <head>
    <style type="text/css">
    div{ width:100px; height:20px; border:1px solid #CC6666; background-color:#FFFFCC; color:black;cursor:default;}
    .selDiv{ background-color:#6666FF; color:white;}
    textarea{ width:400px; height:300px;}
    </style>
    <script language="JavaScript">
    <!--
    var ar = {
        arFileName:[],
        arSelDivs:[]
    };
    function divClk(e){
        var evt = e || window.event;
        var src = evt.target || evt.srcElement;
        if(!evt.ctrlKey){
            //alert(src.outerHTML);
            for(var p in ar.arSelDivs)
                ar.arSelDivs[p].className = "";
            src.className="selDiv";
            ar.arFileName.length = 0;
            ar.arSelDivs.length = 0;
            ar.arFileName.push(src.innerText?src.innerText:src.childNodes[0].nodeValue);
            ar.arSelDivs.push(src);
    document.getElementById("taOut").value=ar.arFileName;
            return;
        }
        //按下ctrlkey
        if(src.className == "selDiv"){
            src.className = "";
            var len = ar.arFileName.length;
            for(var i=0;i<len ;i++)
                if(ar.arSelDivs[i] == src){
                    ar.arFileName.splice(i,1);
                    ar.arSelDivs.splice(i,1);
                }
        }else{
            src.className = "selDiv";
            ar.arFileName.push(src.childNodes[0].nodeValue);
            ar.arSelDivs.push(src);
        }
        document.getElementById("taOut").value=ar.arFileName;
    }//-->
    </script>
    </head>
    <body>
    <script language="JavaScript">
    <!--
    for(var i=0;i<10;i++)
        document.write('<div onselectstart="return false" onclick="divClk(event)" id="div',i,'">filename',i,'</div>');//-->
    </script>
    <textarea id="taOut"></textarea>
    </body>
    </html>
      

  4.   

    看不懂 其实我想实现的就是ctrl多选
      

  5.   

    <body>
    <script language="JavaScript" type="text/javascript">
    Array.prototype.MoveToTop = function(obj)
    {
    var __temp = null;
    for(var i=0;i<this.length;i++)
    {
    if(this[i] === obj)
    {
    __temp = this.splice(i,1);
    break;
    }
    }
    if(__temp != null)this.push(__temp);
    }var arr = [];function divClick(theDiv) 
    {
    if(!event.ctrlKey)
    {  
    if(arr.length)
    {
    arr[arr.length].style.border = "1 solid #CCCCCC"; //未选中时状态颜色
    return;
    }
    }
    resetAllDiv();
    arr.MoveToTop(theDiv);//压入数组,把重复的删除,再把新的放在最底
    theDiv.style.border = "2 solid #316AC5";//.选中时状态颜色
    }
    //还原
    function resetAllDiv()
    {
    if(arr.length <= 0)return;
    for(var i=0;i<arr.length;i++)
    {
    arr[i].style.border = "1 solid #CCCCCC";
    }
    }
    </script><div id="d1" style="border:1 solid #CCCCCC;background-color:red; width:100px; width:100px; position:absolute; left:64px; top:17px; height: 35px;" onClick="divClick(this)"></div>
    <div id="d2" style="border:1 solid #CCCCCC;background-color:red; width:100px; width:100px; position:absolute; left:62px; top:95px; height: 36px;" onClick="divClick(this)"></div>
    <div id="d3" style="border:1 solid #CCCCCC;background-color:red; width:100px; width:100px; position:absolute; left:64px; top:172px; height: 34px;" onClick="divClick(this)"></div>
    </body>
      

  6.   

    我的代码很难懂吗? 实现的就是按ctrl多选啊,操作一下就明白了
      

  7.   

    rotApple(烂苹果) 先谢了 你运行过可以吗?我运行出来不按ctrl的时候就全部选中了,怎么会这样.
      

  8.   

    看看这回能不能看懂
    <html>
    <head>
    <style type="text/css">
    div{ width:100px; height:20px; border:1px solid #CC6666; background-color:#FFFFCC; color:black;cursor:default;margin:2px;}
    .selDiv{ background-color:#6666FF; color:white;}
    textarea{ width:400px; height:300px;}
    </style>
    <script language="JavaScript">
    <!--
    //添加全局命名空间
    var ar = {
        arFileName:[],
        arSelDivs:[]
    };
    //处理div的点击事件
    function divClk(e){
        //获得事件对象
        var evt = e || window.event;
        //获得事件源对象的引用
        var src = evt.target || evt.srcElement;
        //处理没按下ctrl键的情况,这时只选择点击到的这个
        if(!evt.ctrlKey){
            //取消所有已经选择了的div的样式
            for(var p in ar.arSelDivs)
                ar.arSelDivs[p].className = "";
            //设置当前点击的div为选中状态
            src.className="selDiv";
            //清空文件名和选中div数组
            ar.arFileName.length = 0;
            ar.arSelDivs.length = 0;
            //保存当前选择的div和文件名
            ar.arFileName.push(src.childNodes[0].nodeValue);
            ar.arSelDivs.push(src);
            //输出操作结果
    document.getElementById("taOut").value=ar.arFileName;
            return;
        }
        //按下ctrlkey的情况,如果ctrl+click选择的是一个已经选择的对象
        if(src.className == "selDiv"){
            //取消当前div的选择状态
            src.className = "";
            var len = ar.arFileName.length;
            //在选择对象数组中删除,同时删除该div对应的文件名
            for(var i=0;i<len ;i++)
                if(ar.arSelDivs[i] == src){
                    ar.arFileName.splice(i,1);
                    ar.arSelDivs.splice(i,1);
                    break;
                }
        }else{//ctrl+click选择的是一个未选择的对象
            //设置为选择状态
            src.className = "selDiv";
            //保存当前div对应的文件名
            ar.arFileName.push(src.childNodes[0].nodeValue);
            //添加当前div到已选择的div列表.
            ar.arSelDivs.push(src);
        }
        //输出操作结果
        document.getElementById("taOut").value=ar.arFileName;
    }//-->
    </script>
    </head>
    <body>
    <script language="JavaScript">
    <!--
    for(var i=0;i<10;i++)
        document.write('<div onselectstart="return false" onclick="divClk(event)" id="div',i,'">filename',i,'</div>');//-->
    </script>
    <textarea id="taOut"></textarea>
    </body>
    </html>
      

  9.   

    to: zhaoxiaoyang(梅雪香@深圳)兄弟写的不错!完全实现了楼主的想法的说~实现比苹果的简单明了,代码的规范程度也是非常好的说!
      

  10.   

    zhaoxiaoyang(梅雪香@深圳)  果然高 兄弟是学C#的 对JAVASCRIPT不是很熟 所以刚才的看不懂 谢谢注解哈