DOM操作和jQuery實現選項移動操作

来源:http://www.cnblogs.com/rion1234567/archive/2016/06/07/5566415.html
-Advertisement-
Play Games

DOM: jquery: ...


DOM:

 1 <!DOCTYPE html>
 2 <html lang="en">
 3 <head>
 4     <meta charset="UTF-8">
 5     <title>DOM選項移動操作</title>
 6     <style>
 7         select {
 8             width: 100px;
 9             height: 85px;
10         }
11 
12         div {
13             display: inline-block;
14             width: 50px
15         }
16     </style>
17 </head>
18 <body>
19          <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>
20         <div>
21             <button onclick="move(this.innerHTML)">&gt;&gt;</button>
22             <button onclick="move(this.innerHTML)">&gt;</button>
23             <button onclick="move(this.innerHTML)">&lt;</button>
24             <button onclick="move(this.innerHTML)">&lt;&lt;</button>
25         </div>
26         <select id="sel" size="5" multiple>
27         </select>
28     <script>
29         function $(id){
30             return document.getElementById(id);
31         }
32         var unsel=null;//保存所有備選國家列表
33         var sel=[];//保存已選中的國家列表
34         window.onload=function(){
35             unsel=$("unsel").innerHTML
36                             .replace(/<\/?option>/g," ")
37                             .match(/\b[a-zA-Z]+\b/g);
38         }
39         function move(inner){
40             switch (inner){
41                 case "&gt;&gt;"://全部右移
42                     sel=sel.concat(unsel);
43                     unsel.length=0;
44                     sel.sort();
45                     break;
46                 case "&lt;&lt;"://全部左移
47                     unsel=unsel.concat(sel);
48                     sel.length=0;
49                     unsel.sort();
50                     break;
51                 case "&gt;"://選中項右移
52                     var opts=document.querySelectorAll("#unsel option");
53                     //從後向前遍歷每個option
54                     for(var i=opts.length-1;i>=0;i--){
55                         if(opts[i].selected){
56                         //刪除unsel中i位置的1個元素,直接壓入sel
57                             sel.push(unsel.splice(i,1)[0]);
58                         }
59                     }
60                     sel.sort();
61                     break;
62                 case "&lt;"://選中項左移
63                     var opts=document.querySelectorAll("#sel option");
64                     for(var i=opts.length-1;i>=0;i--){
65                         if(opts[i].selected){
66                             unsel.push(sel.splice(i,1)[0]);
67                         }
68                     }
69                     unsel.sort();
70                     break;
71             }
72             show();
73         }
74         function show(){//將兩個數組,更新到select元素中
75             $("unsel").innerHTML="<option>"
76                                 +unsel.join("</option><option>")
77                                 +"</option>";
78             $("sel").innerHTML="<option>"
79                                 +sel.join("</option><option>")
80                                 +"</option>";
81         }
82     </script>
83 </body>
84 </html>

 

jquery:

 1 <!DOCTYPE html>
 2 <html lang="en">
 3 <head>
 4     <meta charset="UTF-8">
 5     <title>選項移動操作</title>
 6     <script src="jquery.min.js"></script>
 7     <style>
 8         select {
 9             width: 100px;
10             height: 85px;
11         }
12 
13         div {
14             display: inline-block;
15             width: 50px
16         }
17     </style>
18 </head>
19 <body>
20     <select id="first" size="5" multiple>
21         <option>Argentina</option>
22         <option>Brazil</option>
23         <option>Canada</option>
24         <option>Chile</option>
25         <option>China</option>
26         <option>Cuba</option>
27         <option>Denmark</option>
28         <option>Egypt</option>
29         <option>France</option>
30         <option>Greece</option>
31         <option>Spain</option>
32     </select>
33     <div>
34         <button id="add">&gt;</button>
35         <button id="add_all">&gt;&gt;</button>
36         <button id="remove">&lt;</button>
37         <button id="remove_all">&lt;&lt;</button>
38     </div>
39     <select id="second" size="5" multiple>
40     </select>
41 
42     <script>
43             $("#add").click(function(){
44                 // 將左邊被選中的選項,移到右邊去
45                 $("#first>option:selected").appendTo($("#second"));
46             });
47             $("#add_all").click(function(){
48                 $("#first>option").appendTo($("#second"));
49             });
50             $("#remove").click(function(){
51                 $("#second>option:selected").appendTo($("#first"));
52             });
53             $("#remove_all").click(function(){
54                 $("#second>option").appendTo($("#first"));
55             });
56             // 雙擊事件
57             $("#first").dblclick(function(){
58                 $("#first>option:selected").appendTo($("#second"));
59             });
60             $("#second").dblclick(function(){
61                 $("#second>option:selected").appendTo($("#first"));
62             });
63     </script>
64 </body>
65 </html>

您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 在這篇文章中將給大家分享12個有關於JavaScript的小技巧。這些小技巧可能在你的實際工作中或許能幫助你解決一些問題。 使用!!操作符轉換布爾值 有時候我們需要對一個變數查檢其是否存在或者檢查值是否有一個有效值,如果存在就返回true值。為了做這樣的驗證,我們可以使用!!操作符來實現是非常的方便 ...
  • 經常用到這兩個屬性,但是一直沒有總結他們的區別。現在我對他們兩個的用法做一下總結: 相同點:他們都會飄出一個小浮層,顯示文本內容。 不同點: 1.alt只能是元素的屬性,而title即可以是元素的屬性也可以是標簽,例如:<title>標題</title>。 2.alt屬性則是用來指定替換文字,只能用 ...
  • html: <a><span id="sendAgain" onclick="sendEmail()">2.再次發送激活郵件</span></a> (span控制點擊事件,disabled無效) js: /*發送郵件*/function sendEmail(){//發送郵箱認證郵件 var me = ...
  • url: http://xxxx.com?name=魅力&id=123 js中: var name = getUrlParam("name"); /*通過正則獲取url中的參數*/function getUrlParam(name){ var reg = new RegExp("(^|&)"+ na ...
  • 1.fis作為nodejs的模塊來管理的,所以首先得安裝nodejs,看我前面的安裝nodejs的文章。 2.官方的案例下載包https://github.com/hefangshi/fis-quickstart-demo 3.cmd命令,進入,然後看圖 安裝的時候普遍可能報錯,什麼什麼鏡像問題,導 ...
  • 1.進入官網https://nodejs.org/en/download/ 2.安裝過程基本直接“NEXT”就可以了。(windows的安裝msi文件在過程中會直接添加path的系統變數,變數值是你的安裝路徑,例如“C:\Program Files\nodejs”)。 3.安裝完成後,cmd進入,然 ...
  • video 用於在HTML或者XHTML文檔中嵌入視頻內容 使用 video 元素至少要提供兩種視頻格式的文件:OGG 和 MP4 1. OGG:採用 Theora 視頻格式和 Vorbis 音頻解碼器 (目前比較主流的視頻格式) 2. MPEG 4:採用 H.264 視頻格式和 AAC 音頻解碼器 ...
  • 上一篇文章中我們就簡單的學習了HTML5 地理定位,那麼今天告訴大家我在項目中遇到的一個問題吧,就是怎麼實現點擊一個按鈕就可以調到百度地圖,並且獲取到你當前的位置,並且導航到指定的地方去。 不想看步驟的可以直接下載DEMO 下載 一、獲取目的地坐標 打開百度地圖API 滑鼠點擊拾取坐標網頁,http ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...