checkbox全选所涉及到的知识点介绍
2014-01-02 11:21
357 查看
checkbox全选涉及到的知识点比如IE里起作用,火狐不起作用,getElementById()与getElementsByName()的区别等等
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>
unity3d教程http://www.unitymanual.com/
原因分析: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;获得的那个元素。
本文出自 “unity3d学习者” 博客,请务必保留此出处http://unity3d168.blog.51cto.com/4361353/1347610
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>
unity3d教程http://www.unitymanual.com/
原因分析: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;获得的那个元素。
本文出自 “unity3d学习者” 博客,请务必保留此出处http://unity3d168.blog.51cto.com/4361353/1347610
相关文章推荐
- checkbox全选所涉及到的知识点介绍
- checkbox全选所涉及到的知识点介绍
- checkbox全选所涉及到的知识点介绍
- checkbox全选所涉及到的知识点介绍
- Android面试中必会涉及到的重要知识点
- cocos2dx 自学知识点之一游戏主要框架介绍
- 相当宝贵的介绍JNIJ的文章,涉及JNIENV
- c/c++程序设计涉及的一些知识点
- 关于函数调用涉及到的知识点的归纳
- 系统设计的典型分层和涉及的知识点
- 最近做应用涉及到蓝牙方面,转篇蓝牙耳机方面的介绍
- linux历史涉及知识点
- Linux下安装Oracle的过程和涉及的知识点-系列4
- 简练软考知识点整理-项目整合管理介绍
- FPGA服务器硬件搭建涉及的知识点2
- 【前端知识点】模块化开发介绍
- 系统集成资质培训 - 案例分析中涉及到识记的知识点
- FastDFS 知识点介绍
- 介绍MFC框架中涉及到的设计模式(一)
- 秋式广告杀手V2.5发布:各种涉及知识点分享