js動態修改select和checkbox


在網頁編程中,我們通常會遇到要動態修改select和checkbox的情況,而一般來說這些內容在教程或書籍上並沒有明確的記錄。我通過實踐總結了如下的經驗。首先為了方便獲取select和checkbox選擇的值一般會使用同樣的名字如下:

1 <select name = "test_select" id = "test_select">
2     <option value = "1">1</option>
3     <option value = "2">2</option>
4 </select>
1 <input type="checkbox" name = "test_checkbox" value = "test1"/> test1
2 <input type="checkbox" name = "test_checkbox" value = "test2"/> test2
3 <input type="checkbox" name = "test_checkbox" value = "test3"/> test3

 這樣對於一系列checkbox就可以通過獲取名字獲得結果數組。下面我們會講到。

1.select

1.1動態添加option

有時候我們並不是一開始就知道所有的選項值,因此我們可以通過js動態添加選項。

 

 1 <!DOCTYPE html>
 2 <html>
 3   <head>
 4     <title>index.html</title>
 5     
 6     <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
 7     <meta http-equiv="description" content="this is my page">
 8     <meta http-equiv="content-type" content="text/html; charset=UTF-8">
 9     
10     <!--<link rel="stylesheet" type="text/css" href="./styles.css">-->
11     <script>
12     function init(){
13         var sel = document.getElementById("test_select");
14         sel.options.add(new Option ("haha","hehe"));
15     }
16     </script>
17   </head>
18   
19   <body onload = "init()">
20     This is my HTML page. <br>
21     <select id = "test_select">
22         <option value = "select1">1</option>
23         <option value = "select2">2</option>
24     </select>
25     
26   </body>
27 </html>

以上可以通過.option.add函數動態添加option。

下面為了避免冗余我們所說的代碼特指onload函數的操作。

此外我們還可以通過直接添加DOM元素的方式來添加option,此處應該注意option的顯示文字是由label屬性控制的。這個方法比較適用在完全自動生成的頁面,因為他的構造完全可以通過傳入的參數界定。

1 <script>
2     function init(){
3         var sel = document.getElementById("test_select");
4         var test = document.createElement("option");
5         test.setAttribute("value", "haha");
6         test.setAttribute("label", "hehe");
7         sel.appendChild(test);
8     }
9     </script>

1.2動態刪除option

 刪除option可以直接通過options的remove方法來移除option,但應該注意的是這個index是option的從上而下的位置,從0開始計算。

1     <script>
2     function init(){
3         var sel = document.getElementById("test_select");
4         var deleteindex = 1;  //this is usually a parameter which is given by others.
5         sel.options.remove(deleteindex);
6     }
7     </script>
View Code

此外我們也可以通過DOM元素的方法removeChild刪除,方法基本同上,只是注意參數是DOM node,而且其中有space子樹,在取子樹時應注意。

1.3動態修改option

修改十分簡單就是找到相應的option使用setAttribute方法設置即可。

1.4初始化被選擇的值

大多數情況我們希望初始時select就是我們所希望看到的option被選中。這種情況我們需要

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM