麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 編程 > JavaScript > 正文

checkbox全選所涉及到的知識點介紹

2019-11-20 21:20:23
字體:
來源:轉載
供稿:網友
1、IE里起作用,火狐不起作用

IE版本
復制代碼 代碼如下:

<script type="text/javascript">

function checkALL(str)//全選控制的JS
{
var a=document.getElementsByName(str);
var n=a.length;

for(var i=0;i<n;i++)

{

a[i].checked=window.event.srcElement.checked;

}

}

</script>

火狐版本
復制代碼 代碼如下:

<script type="text/javascript">

function checkALL(str)//全選控制的JS
{
var a=document.getElementsByName(str);
var n=a.length;
for(var i=0;i<n;i++){
a[i].checked=document.getElementById("all").checked;
}
}

</script>

原因分析:window.event只能在IE下運行,所以在火狐下js運行不起作用。火狐版本里頭,是直接獲得"id=all"的checkbox被選擇狀態,然后賦值給"name=str"的checkbox組的每一項,這樣就可以保持選擇狀態的同步。

2、document.getElementById()與document.getElementsByName()的區別

上面那段js通過兩種方式獲得了checkbox的狀態,從名字上看,他們的作用應該是類似,一個通過id獲得元素,一個通過name獲得元素。但這兩個方法是有差別的,如果在使用過程中不注意,很可能會覺得可以混用,從而會造成困擾。我當時就覺得隨便用一個就好,但改名字后,js代碼卻不起作用,其實是因為不了解,導致用錯了。

(1)document.getElementById()是通過id訪問某一個特定元素,因為在一個頁面中id是唯一的,所以這個函數返回的是一個Element

(2)document.getElementsByName()是通過name來訪問元素,因為在一個頁面中name不是唯一的,可以重名,所以這個函數返回的是一組Elements

正是因為一個是元素,一個是數組,所以在混用的時候不注意就會出錯,導致js運行不下去。比如,當時我把a[i].checked=document.getElementById("all").checked;改成a[i].checked=document.getElementsByName("all").checked;的時候,js運行不起作用(因為js出錯但不報錯,所以感覺是沒起作用),其實此處并不是不識別,是因為調用的時候用錯了,正確寫法是a[i].checked=document.getElementsByName("all")[0].checked;這樣改后,效果一樣。因為我們的頁面中只存在一個"name=all"的checkbox,所以我們以[0]來取Elements中的第一個元素,就是我們通過a[i].checked=document.getElementById("all").checked;獲得的那個元素。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 亚洲人成电影在线 | 91亚洲精品一区二区福利 | 国产1区2区3区中文字幕 | 国产精品久久久久久久久粉嫩 | 日本欧美中文字幕 | 中文在线日韩 | 精品一区二区久久久久久久网精 | 色婷婷a v | 一级成人毛片 | 31freehdxxxx欧美 | 91亚洲免费视频 | 91精品老司机 | www.48xx.com| 欧美无极品 | 狠狠干五月天 | 在线观看国产 | 性看小视频| 欧美成人一区免费视频 | 国产免费久久久 | 中文字幕亚洲一区二区三区 | 嫩草www| videos真实高潮xxxx| 成人一区二区三区在线 | 久精品国产 | 欧美a视频在线观看 | 免费欧美一级视频 | av黄色片网站 | 视频在线中文字幕 | 久久久国产精品免费观看 | 深夜福利久久久 | 2级毛片 | 色婷婷一区二区三区 | 久久久久北条麻妃免费看 | 久久亚洲国产精品 | 成人免费精品视频 | 色吧综合网 | 一区二区三区视频在线观看 | 在线成人www免费观看视频 | 在线中文字幕观看 | 中文字幕视频在线播放 | 日本成人一区二区三区 |