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

选择器解决方法

2013-10-01 
选择器#container{width:700pxmargin:0 autooverflow:hidden}.unselected{float:leftwidth:300px}.se

选择器
选择器解决方法

#container{
width:700px;
margin:0 auto;
overflow:hidden;
}
.unselected{
float:left;
width:300px;
}
.select-btn{
float:left;
width:100px;
height:100%;
text-align:center;
}
.selected{
float:left;
width:300px;
}
select{
width:300px;
}

<div id="container">
<div class="unselected">
<select size="8" multiple="multiple" id="unselected"></select>
</div>
<div class="select-btn">
<button type="button" id="selectall">&gt;&gt;</button><br />
<button type="button" id="selectone">&gt;</button><br />
<button type="button" id="removeone">&lt;</button><br />
<button type="button" id="removeall">&lt;&lt;</button>
</div>
<div class="selected">
<select size="8" multiple="multiple" id="selected"></select>
</div>
</div>

var data=[{label:"item1",value:1},{label:"item2",value:2},{label:"item3",value:3},{label:"item4",value:4},{label:"item5",value:5},{label:"item6",value:6},{label:"item7",value:7},{label:"item8",value:8},{label:"item9",value:9},{label:"item10",value:10},{label:"item11",value:11}];
//初始化
for(var i=0;i<data.length;i++){
var item=document.createElement("option");
item.text=data[i].label;
item.value=data[i].value;
item.initIndex=i;
unselected.appendChild(item);
}
//选择全部
selectall.addEventListener("click",function(){
var items=[];
for(var i=0;i<unselected.length;i++){
items.push(unselected[i]);
}
select(items);
},false);
//选择部分
selectone.addEventListener("click",function(){
var items=[];
for(var i=0;i<unselected.length;i++){
if(unselected[i].selected){
items.push(unselected[i]);
}
}
select(items);
},false);
//移除全部
removeall.addEventListener("click",function(){
var items=[];
for(var i=0;i<selected.length;i++){
items.push(selected[i]);
}
remove(items);
},false);
//移除部分
removeone.addEventListener("click",function(){
var items=[];
for(var i=0;i<selected.length;i++){
if(selected[i].selected){
items.push(selected[i]);
}
}
remove(items);
},false);
//选择
function select(items){
var i=0,j=0;
for(;i<items.length;i++){
while(selected[j]&&selected[j].initIndex<items[i].initIndex){
j++;
}
items[i].selected=false;
selected.add(items[i],selected[j]);
}
}
//移除
function remove(items){
var i=0,j=0;
for(;i<items.length;i++){
while(unselected[j]&&unselected[j].initIndex<items[i].initIndex){
j++;
}
items[i].selected=false;
unselected.add(items[i],unselected[j]);
}
}

热点排行