基于javascript實(shí)現(xiàn)listbox左右移動(dòng)
更新時(shí)間:2016年01月29日 09:26:59 作者:沸羊羊一個(gè)
這篇文章主要介紹了基于javascript實(shí)現(xiàn)listbox左右移動(dòng)的相關(guān)資料,以一個(gè)完整的實(shí)例代碼分析了js實(shí)現(xiàn)listbox左右移動(dòng)的相關(guān)技巧,感興趣的小伙伴們可以參考一下
本文實(shí)例講解了javascript實(shí)現(xiàn)listbox左右移動(dòng)的詳細(xì)代碼,分享給大家供大家參考,具體內(nèi)容如下
效果圖:

具體代碼:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>listbox左右移動(dòng)</title>
</head>
<body>
<div style="background-color:#CCC; width:450px; height:300px; margin:150px,0,0,450px; border:1px solid">
<table align="center" width="285" height="169" bgcolor="#99CCFF">
<tr>
<td width="100">
<select name="first" id="first" size="10" multiple="multiple" style="background-color:#3FC;">
<option value="選項(xiàng)1">選項(xiàng)1</option>
<option value="選項(xiàng)2">選項(xiàng)2</option>
<option value="選項(xiàng)3">選項(xiàng)3</option>
<option value="選項(xiàng)4">選項(xiàng)4</option>
<option value="選項(xiàng)5">選項(xiàng)5</option>
<option value="選項(xiàng)6">選項(xiàng)6</option>
<option value="選項(xiàng)7">選項(xiàng)7</option>
<option value="選項(xiàng)8">選項(xiàng)8</option>
</select>
</td>
<td width="85" valign="middle">
<input name="add" id="add" type="button" value="--->"/>
<input name="add_all" id="add_all" type="button" value="===>"/>
<input name="remove" id="remove" type="button" value="<---"/>
<input name="remove_all" id="remove_all" type="button" value="<==="/>
</td>
<td width="100" align="left">
<select name="second" id="second" size="10" multiple="multiple" style="background-color:#3FC;">
<option value="選項(xiàng)9">選項(xiàng)9</option>
</select>
</td>
</tr>
</table>
</div>
</body>
<script type="text/javascript">
//左移右
/*<input name="add" id="add" type="button" value="--->"/>*/
document.getElementById("add").onclick = function add()
{
var firstSel = document.getElementById("first");
var option = firstSel.getElementsByTagName("option");
//javascript的數(shù)組是動(dòng)態(tài)數(shù)組,長度是可以變的。
//所以先取得下拉列表的長度,避免option被移走后長度變小,導(dǎo)致后面循環(huán)終止,出現(xiàn)beg
var oplength=option.length;
var secondSel = document.getElementById("second");
for(i=0;i<oplength;i++)
{
/*
selectedIndex: 該下標(biāo)返回下拉列表的索引值
注: 如果有多個(gè)被選中的情況下,永遠(yuǎn)返回第一個(gè)選中的索引值,索引最小的那個(gè)
如果沒有被選中的情況下,返回-1
selectedIndex是<select>的屬性
*/
if(firstSel.selectedIndex!=-1)
{
secondSel.appendChild(option[firstSel.selectedIndex]);
}
}
}
/*<input name="add_all" id="add_all" type="button" value="===>"/>*/
document.getElementById("add_all").onclick = function addAll()
{
var firstSel = document.getElementById("first");
var option = firstSel.getElementsByTagName("option");
//javascript的數(shù)組是動(dòng)態(tài)數(shù)組,長度是可以變的。
//所以先取得下拉列表的長度,避免option被移走后長度變小,導(dǎo)致后面循環(huán)終止,出現(xiàn)beg
var oplength=option.length;
var secondSel = document.getElementById("second");
for(i=0;i<oplength;i++)
{
/*因?yàn)閖avascript的數(shù)組是動(dòng)態(tài)數(shù)組,長度是可以變的。所以當(dāng)移走全部把數(shù)
組的值移走(一個(gè)一個(gè)的移走,數(shù)組長度馬上-1,所以數(shù)組下標(biāo)也是-1.因次我們要把每次移的是走下標(biāo)為0的那個(gè)
數(shù),這樣才保證可以全部移走)*/
secondSel.appendChild(option[0]);
}
}
/*雙擊后把option移到右邊*/
document.getElementById("first").ondblclick = function dblclick()
{
/*方法一*/
/*
var firstSel = document.getElementById("first");
var option = firstSel.getElementsByTagName("option");
//javascript的數(shù)組是動(dòng)態(tài)數(shù)組,長度是可以變的。
//所以先取得下拉列表的長度,避免option被移走后長度變小,導(dǎo)致后面循環(huán)終止,出現(xiàn)beg
var oplength=option.length;
var secondSel = document.getElementById("second");
for(i=0;i<oplength;i++)
{
//雙擊可以看成:第一次點(diǎn)擊選中,第二次點(diǎn)擊移動(dòng)
secondSel.appendChild(option[firstSel.selectedIndex]);
}
*/
/*方法二*/
/*
this: this表示document.getElementById("first") 下拉列表
this.selectedIndex表示下拉列表選中的項(xiàng)
*/
var secondSel = document.getElementById("second");
secondSel.appendChild(this[this.selectedIndex]);
}
//右移左
/*<input name="remove" id="remove" type="button" value="<---"/>*/
document.getElementById("remove").onclick = function remove()
{
var secondSel = document.getElementById("second");
var firstSel = document.getElementById("first");
var option = secondSel.getElementsByTagName("option");
//javascript的數(shù)組是動(dòng)態(tài)數(shù)組,長度是可以變的。
//所以先取得下拉列表的長度,避免option被移走后長度變小,導(dǎo)致后面循環(huán)終止,出現(xiàn)beg
var oplength=option.length;
for(i=0;i<oplength;i++)
{
/*
selectedIndex: 該下標(biāo)返回下拉列表的索引值
注: 如果有多個(gè)被選中的情況下,永遠(yuǎn)返回第一個(gè)選中的索引值,索引最小的那個(gè)
如果沒有被選中的情況下,返回-1
selectedIndex是<select>的屬性
*/
if(secondSel.selectedIndex!=-1)
{
firstSel.appendChild(option[secondSel.selectedIndex]);
}
}
}
/*<input name="remove_all" id="remove_all" type="button" value="<==="/>*/
document.getElementById("remove_all").onclick = function remove_all()
{
var secondSel = document.getElementById("second");
var firstSel = document.getElementById("first");
var option = secondSel.getElementsByTagName("option");
//javascript的數(shù)組是動(dòng)態(tài)數(shù)組,長度是可以變的。
//所以先取得下拉列表的長度,避免option被移走后長度變小,導(dǎo)致后面循環(huán)終止,出現(xiàn)beg
var oplength=option.length;
for(i=0;i<oplength;i++)
{
/*因?yàn)閖avascript的數(shù)組是動(dòng)態(tài)數(shù)組,長度是可以變的。所以當(dāng)移走全部把數(shù)
組的值移走(一個(gè)一個(gè)的移走,數(shù)組長度馬上-1,所以數(shù)組下標(biāo)也是-1.因次我們要把每次移的是走下標(biāo)為0的那個(gè)
數(shù),這樣才保證可以全部移走)*/
firstSel.appendChild(option[0]);
}
}
/*雙擊后把option移到右邊*/
document.getElementById("second").ondblclick = function dblclick()
{
/*方法一*/
/*
var secondSel = document.getElementById("second");
var firstSel = document.getElementById("first");
var option = secondSel.getElementsByTagName("option");
//javascript的數(shù)組是動(dòng)態(tài)數(shù)組,長度是可以變的。
//所以先取得下拉列表的長度,避免option被移走后長度變小,導(dǎo)致后面循環(huán)終止,出現(xiàn)beg
var oplength=option.length;
for(i=0;i<oplength;i++)
{
//雙擊可以看成:第一次點(diǎn)擊選中,第二次點(diǎn)擊移動(dòng)
firstSel.appendChild(option[secondSel.selectedIndex]);
}
*/
/*方法二*/
/*
this: this表示document.getElementById("second") 下拉列表
this.selectedIndex表示下拉列表選中的項(xiàng)
*/
var firstSel = document.getElementById("first");
firstSel.appendChild(this[this.selectedIndex]);
}
</script>
</html>
代碼注釋很詳細(xì),希望可以幫到大家。
以上就是本文的全部內(nèi)容,希望對大家學(xué)習(xí)javascript程序設(shè)計(jì)有所幫助。
您可能感興趣的文章:
- JS ListBox的簡單功能實(shí)現(xiàn)代碼
- js 獲取Listbox選擇的值的代碼
- javascript實(shí)現(xiàn)listbox左右移動(dòng)實(shí)現(xiàn)代碼
- JavaScript如何從listbox里同時(shí)刪除多個(gè)項(xiàng)目
- 使用javascript實(shí)現(xiàn)ListBox左右全選,單選,多選,全請
- 用JavaScript實(shí)現(xiàn)類似于ListBox功能示例代碼
- JavaScript控制兩個(gè)列表框listbox左右交換數(shù)據(jù)的方法
- JavaScript控制listbox列表框的項(xiàng)目上下移動(dòng)的方法
- JavaScript列表框listbox全選和反選的實(shí)現(xiàn)方法
相關(guān)文章
超鏈接怎么正確調(diào)用javascript函數(shù)
本文介紹使用超鏈接調(diào)用javasript函數(shù)且不會影響GIF圖片動(dòng)畫的方法,有遇到相同問題的小伙伴可以參考一下。
2016-05-05
js立即執(zhí)行函數(shù): (function ( ){})( ) 與 (function ( ){}( )) 有什么區(qū)別?
這篇文章主要介紹了js立即執(zhí)行函數(shù): (function ( ){})( ) 與 (function ( ){}( )) 有什么區(qū)別,需要的朋友可以參考下
2015-11-11
基于JavaScript實(shí)現(xiàn)的插入排序算法分析
這篇文章主要介紹了基于JavaScript實(shí)現(xiàn)的插入排序算法,結(jié)合實(shí)例形式詳細(xì)分析了插入排序的原理、操作步驟及javascript相關(guān)實(shí)現(xiàn)技巧與注意事項(xiàng),需要的朋友可以參考下
2017-04-04 
