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

具體代碼:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>listbox左右移動</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="選項1">選項1</option>
<option value="選項2">選項2</option>
<option value="選項3">選項3</option>
<option value="選項4">選項4</option>
<option value="選項5">選項5</option>
<option value="選項6">選項6</option>
<option value="選項7">選項7</option>
<option value="選項8">選項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="選項9">選項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ù)組是動態(tài)數(shù)組,長度是可以變的。
//所以先取得下拉列表的長度,避免option被移走后長度變小,導致后面循環(huán)終止,出現(xiàn)beg
var oplength=option.length;
var secondSel = document.getElementById("second");
for(i=0;i<oplength;i++)
{
/*
selectedIndex: 該下標返回下拉列表的索引值
注: 如果有多個被選中的情況下,永遠返回第一個選中的索引值,索引最小的那個
如果沒有被選中的情況下,返回-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ù)組是動態(tài)數(shù)組,長度是可以變的。
//所以先取得下拉列表的長度,避免option被移走后長度變小,導致后面循環(huán)終止,出現(xiàn)beg
var oplength=option.length;
var secondSel = document.getElementById("second");
for(i=0;i<oplength;i++)
{
/*因為javascript的數(shù)組是動態(tài)數(shù)組,長度是可以變的。所以當移走全部把數(shù)
組的值移走(一個一個的移走,數(shù)組長度馬上-1,所以數(shù)組下標也是-1.因次我們要把每次移的是走下標為0的那個
數(shù),這樣才保證可以全部移走)*/
secondSel.appendChild(option[0]);
}
}
/*雙擊后把option移到右邊*/
document.getElementById("first").ondblclick = function dblclick()
{
/*方法一*/
/*
var firstSel = document.getElementById("first");
var option = firstSel.getElementsByTagName("option");
//javascript的數(shù)組是動態(tài)數(shù)組,長度是可以變的。
//所以先取得下拉列表的長度,避免option被移走后長度變小,導致后面循環(huán)終止,出現(xiàn)beg
var oplength=option.length;
var secondSel = document.getElementById("second");
for(i=0;i<oplength;i++)
{
//雙擊可以看成:第一次點擊選中,第二次點擊移動
secondSel.appendChild(option[firstSel.selectedIndex]);
}
*/
/*方法二*/
/*
this: this表示document.getElementById("first") 下拉列表
this.selectedIndex表示下拉列表選中的項
*/
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ù)組是動態(tài)數(shù)組,長度是可以變的。
//所以先取得下拉列表的長度,避免option被移走后長度變小,導致后面循環(huán)終止,出現(xiàn)beg
var oplength=option.length;
for(i=0;i<oplength;i++)
{
/*
selectedIndex: 該下標返回下拉列表的索引值
注: 如果有多個被選中的情況下,永遠返回第一個選中的索引值,索引最小的那個
如果沒有被選中的情況下,返回-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ù)組是動態(tài)數(shù)組,長度是可以變的。
//所以先取得下拉列表的長度,避免option被移走后長度變小,導致后面循環(huán)終止,出現(xiàn)beg
var oplength=option.length;
for(i=0;i<oplength;i++)
{
/*因為javascript的數(shù)組是動態(tài)數(shù)組,長度是可以變的。所以當移走全部把數(shù)
組的值移走(一個一個的移走,數(shù)組長度馬上-1,所以數(shù)組下標也是-1.因次我們要把每次移的是走下標為0的那個
數(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ù)組是動態(tài)數(shù)組,長度是可以變的。
//所以先取得下拉列表的長度,避免option被移走后長度變小,導致后面循環(huán)終止,出現(xiàn)beg
var oplength=option.length;
for(i=0;i<oplength;i++)
{
//雙擊可以看成:第一次點擊選中,第二次點擊移動
firstSel.appendChild(option[secondSel.selectedIndex]);
}
*/
/*方法二*/
/*
this: this表示document.getElementById("second") 下拉列表
this.selectedIndex表示下拉列表選中的項
*/
var firstSel = document.getElementById("first");
firstSel.appendChild(this[this.selectedIndex]);
}
</script>
</html>
代碼注釋很詳細,希望可以幫到大家。
以上就是本文的全部內容,希望對大家學習javascript程序設計有所幫助。
您可能感興趣的文章:
相關文章
微信小程序使用uni-app實現(xiàn)首頁搜索框導航欄功能詳解
這篇文章主要介紹了微信小程序使用uni-app實現(xiàn)首頁搜索框導航欄功能,uni-app?是一個使用?Vue.js?(opens?new?window)開發(fā)所有前端應用的框架,開發(fā)者編寫一套代碼,可發(fā)布到iOS、Android、Web(響應式)、以及各種小程序2022-10-10
js立即執(zhí)行函數(shù): (function ( ){})( ) 與 (function ( ){}( )) 有什么區(qū)別?
這篇文章主要介紹了js立即執(zhí)行函數(shù): (function ( ){})( ) 與 (function ( ){}( )) 有什么區(qū)別,需要的朋友可以參考下2015-11-11

