为什么不用:document.getElementsByTagName("input")
解决方案 »
- 求一个正则表达式
- 有没有办法根据当前系统日期自动调整日期下拉框的值
- 这道题我试了很久,无法解决,看来只能由高手来解了
- js脚本在ie8 ff下都正常 在ie6下提示"'A'为空或不是对象"和"没有权限"是怎么回事???
- 如何使用javascript控制select组件
- 哪位可以共享Javascript 下MD5的加密码文件吗?
- 网页中如何让打包的程序仅安装一次?
- 用户访问了网页,如何判断用户长时间不再机器旁??????????????
- javascript闭包里的函数调用问题
- 百度2015校园招聘前端笔试题
- javascript理论上是“基于对象”还是“面向对象”的编程语言呢?这两种类型语言的本质区别何在呢?
- jquery问题(急)
------------------------------------------------
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>Untitled Document</title>
</head><body>
<form name="bbb">
<input type="text" name="item1" />
</form>
<script type="text/ecmascript">
alert(document.forms["bbb"].getElementsByTagName("input").length);
</script>
</body>
</html>
仔细查了一下,document.bbb.elements 会按顺序返回 form 中全部控件(input type=image 除外),
接下来就是对 document.bbb.elements[ctrlName] 探查了,确实很有意思,
如果存在与 ctrlName 的同名控件,此时返回滴是集合(相当于 document.getElementsByName(ctrlName)),因此存在 length 属性;
如果仅有一个 ctrlName 控件,此时返回地就是该控件(相当于 document.getElementById(ctrlName)),当然也就没有 length 属性了。当然,控件名中可以使用方括号,但强烈建议不要用!
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title> new document </title>
<meta name="generator" content="editplus" />
<meta name="author" content="" />
<meta name="keywords" content="" />
<meta name="description" content="" />
</head> <body>
<form name="bbb">
<input type="text" name="aaa">
<input type="text" name="aaa">
<input type="text" name="bbb">
</form>
<a href="javascript:alert(document.bbb.elements['aaa'].length);">aaa</a> // 相当于 document.getElementsByName("aaa");
<a href="javascript:alert(document.bbb.elements['bbb'].name);">bbb</a> // 相当于 document.getElementById("bbb");
</body>
</html>