html中标签checkbox的问题
答案:1 悬赏:10 手机版
解决时间 2021-03-15 11:29
- 提问者网友:记得曾经
- 2021-03-15 02:27
ha function init() { //方法一 //var myopt = document.all.opt; //方法二 //var myopt = document.form1.opt; //方法三 var myopt = document.getElementsByName('opt'); alert(myopt.length); } 上面我用三种方法得到名为opt的checkbox,但是如果form1里面只有一个name为opt的checkbox的时候,方法一和方法二都是错误的,只有方法三能正确获取opt。但是如果name为opt的checkbox多于一个,三种方法都是正确的,我用IE8. 请问为什么?
最佳答案
- 五星知识达人网友:白昼之月
- 2021-03-15 03:14
第一种本身就不建议你使用,因为那个是JScript语法,不是标准的Javascript语法,所以只限在IE下使用。而FF不支持。
第一个的道理,和第二个错误的差不多.
第二种的话,是获取该文档里的name名为opt的对象,如果对象存在多个,则获取到的是一个集合,如果对象只有一个,则获取该对象。
如果你只有一个,那么获取到的就是单个对象,而单个对象,不存在.length这个属性的,除非是字符串对象,才有这个属性
其实第一个就是第二个,只是第一个是微软的JScript语法而已
原理一样一样一样的。但是第二个只获取表单,只针对表单有效,第一句的话,是针对整个页面文档有效
第三种方法,无论对象的多少,获取到的都是一个数组,只是数组的长度为1或者为n而已。所以你第三种方法无论哪种情况都正确
按Javascript的(你的第二种语法),只限制表单下允许搜索name,理论上,按W3C原则,非表单元素,不存在name属性的Tag标签,所以也就不存在搜索文档内的非表单元素的name
Javascript和W3C的XHTML1.0(或更高)标准规范文档差不多挂勾的。
第一个的道理,和第二个错误的差不多.
第二种的话,是获取该文档里的name名为opt的对象,如果对象存在多个,则获取到的是一个集合,如果对象只有一个,则获取该对象。
如果你只有一个,那么获取到的就是单个对象,而单个对象,不存在.length这个属性的,除非是字符串对象,才有这个属性
其实第一个就是第二个,只是第一个是微软的JScript语法而已
原理一样一样一样的。但是第二个只获取表单,只针对表单有效,第一句的话,是针对整个页面文档有效
第三种方法,无论对象的多少,获取到的都是一个数组,只是数组的长度为1或者为n而已。所以你第三种方法无论哪种情况都正确
按Javascript的(你的第二种语法),只限制表单下允许搜索name,理论上,按W3C原则,非表单元素,不存在name属性的Tag标签,所以也就不存在搜索文档内的非表单元素的name
Javascript和W3C的XHTML1.0(或更高)标准规范文档差不多挂勾的。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯