DOM操作和jQuery實(shí)現(xiàn)選項(xiàng)移動操作的簡單實(shí)例
更新時(shí)間:2016年06月07日 14:55:10 投稿:jingxian
下面小編就為大家?guī)硪黄狣OM操作和jQuery實(shí)現(xiàn)選項(xiàng)移動操作的簡單實(shí)例。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
DOM:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>DOM選項(xiàng)移動操作</title>
<style>
select {
width: 100px;
height: 85px;
}
div {
display: inline-block;
width: 50px
}
</style>
</head>
<body>
<select id="unsel" size="5" multiple><option>Argentina</option><option>Brazil</option><option>Canada</option><option>Chile</option><option>China</option><option>Cuba</option><option>Denmark</option><option>Egypt</option><option>France</option><option>Greece</option><option>Spain</option></select>
<div>
<button onclick="move(this.innerHTML)">>></button>
<button onclick="move(this.innerHTML)">></button>
<button onclick="move(this.innerHTML)"><</button>
<button onclick="move(this.innerHTML)"><<</button>
</div>
<select id="sel" size="5" multiple>
</select>
<script>
function $(id){
return document.getElementById(id);
}
var unsel=null;//保存所有備選國家列表
var sel=[];//保存已選中的國家列表
window.onload=function(){
unsel=$("unsel").innerHTML
.replace(/<\/?option>/g," ")
.match(/\b[a-zA-Z]+\b/g);
}
function move(inner){
switch (inner){
case ">>"://全部右移
sel=sel.concat(unsel);
unsel.length=0;
sel.sort();
break;
case "<<"://全部左移
unsel=unsel.concat(sel);
sel.length=0;
unsel.sort();
break;
case ">"://選中項(xiàng)右移
var opts=document.querySelectorAll("#unsel option");
//從后向前遍歷每個(gè)option
for(var i=opts.length-1;i>=0;i--){
if(opts[i].selected){
//刪除unsel中i位置的1個(gè)元素,直接壓入sel
sel.push(unsel.splice(i,1)[0]);
}
}
sel.sort();
break;
case "<"://選中項(xiàng)左移
var opts=document.querySelectorAll("#sel option");
for(var i=opts.length-1;i>=0;i--){
if(opts[i].selected){
unsel.push(sel.splice(i,1)[0]);
}
}
unsel.sort();
break;
}
show();
}
function show(){//將兩個(gè)數(shù)組,更新到select元素中
$("unsel").innerHTML="<option>"
+unsel.join("</option><option>")
+"</option>";
$("sel").innerHTML="<option>"
+sel.join("</option><option>")
+"</option>";
}
</script>
</body>
</html>
jquery:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>選項(xiàng)移動操作</title>
<script src="jquery.min.js"></script>
<style>
select {
width: 100px;
height: 85px;
}
div {
display: inline-block;
width: 50px
}
</style>
</head>
<body>
<select id="first" size="5" multiple>
<option>Argentina</option>
<option>Brazil</option>
<option>Canada</option>
<option>Chile</option>
<option>China</option>
<option>Cuba</option>
<option>Denmark</option>
<option>Egypt</option>
<option>France</option>
<option>Greece</option>
<option>Spain</option>
</select>
<div>
<button id="add">></button>
<button id="add_all">>></button>
<button id="remove"><</button>
<button id="remove_all"><<</button>
</div>
<select id="second" size="5" multiple>
</select>
<script>
$("#add").click(function(){
// 將左邊被選中的選項(xiàng),移到右邊去
$("#first>option:selected").appendTo($("#second"));
});
$("#add_all").click(function(){
$("#first>option").appendTo($("#second"));
});
$("#remove").click(function(){
$("#second>option:selected").appendTo($("#first"));
});
$("#remove_all").click(function(){
$("#second>option").appendTo($("#first"));
});
// 雙擊事件
$("#first").dblclick(function(){
$("#first>option:selected").appendTo($("#second"));
});
$("#second").dblclick(function(){
$("#second>option:selected").appendTo($("#first"));
});
</script>
</body>
</html>
以上這篇DOM操作和jQuery實(shí)現(xiàn)選項(xiàng)移動操作的簡單實(shí)例就是小編分享給大家的全部內(nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
jQuery的內(nèi)容過濾選擇器學(xué)習(xí)教程
這篇文章主要介紹了jQuery的內(nèi)容過濾選擇器學(xué)習(xí)教程,詳細(xì)地整理了jQuery中四個(gè)過濾器的相關(guān)函數(shù)用法,需要的朋友可以參考下2016-04-04
jQuery web 組件 后臺日歷價(jià)格、庫存設(shè)置的代碼
這篇文章主要介紹了jQuery web 組件 后臺日歷價(jià)格、庫存設(shè)置的相關(guān)資料,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下2016-10-10
jQuery實(shí)現(xiàn)帶玻璃流光質(zhì)感的手風(fēng)琴特效
這篇文章主要介紹了jQuery實(shí)現(xiàn)帶玻璃流光質(zhì)感的手風(fēng)琴特效,是一款基于jQuery+CSS3實(shí)現(xiàn)手風(fēng)琴特效,希望你可以喜歡。2015-11-11
javascript向后臺傳送相同屬性的參數(shù)即數(shù)組參數(shù)
在傳送參數(shù)時(shí),經(jīng)常會碰到向后臺傳送一些相同屬性的參數(shù),最好的選擇是采用數(shù)組的方式,下面有個(gè)不錯(cuò)的示例,大家可以參考下2014-02-02

