Form 表单对象
--用法----document.forms[] 是一个数组,包含了文档中所有的表单()。要引用单个表单,可以用 document.forms[x],但是一般来说,人们都会这样做:在标记中加上“name="..."”属性,那么直接用“document.<表单名>”就可以引用了。
经测试通过length属性能返回一个长度,说明其是一个节点对象,采用对象(点)表单元素name属性值就可以获得其元素的引用(如input)
经上述引发以下思考:其它含有包含关系的节点对象是否也可以采用对象点name属性值的方式获取下一级节点对象呢?
经测试table表格元素(因为其也可以返回一个集合)发现是可以的。
于是查询api发现form和table对象都可以返回集合
<head>
<script type="text/javascript">
function cell()
{
var x=document.getElementById('myTable').rows[1].cells;
alert(x.aaa);
}
</script>
</head>
<body>
<table id="myTable" border="1">
<tr>
<td name="ss">cell 1</td>
<td name="ewr">cell 2</td>
</tr>
<tr>
<td name="aaa">cell 3</td>
<td>cell 4</td>
</tr>
</table>
<br />
<input type="button" οnclick="cell()" value="显示第一个单元">
</body>
对于不是返回集合的元素测试结果返回的是undefined
以下是 个人猜想:
1.只要返回对象数组或集合的元素,就可以采用对象点name属性值的方式获取其子元素的对象引用
为了验证猜想,我让不是返回集合的节点对象返回集合代码如下:
<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>无标题文档</title>
<script language="javascript">
function Xxx(f){
//此句f.children表示获取作为当前对象的直接子后代对象的集合
alert(f.children.p);
}
</script>
<style>
a{
display:block;
border:solid #F00;
width:200px;
height:200px;
margin:100px;
}
</style>
</head>
<body>
<a name="haha" href="http://www.baidu.com" onMouseMove="Xxx(this)">
<p name="p">这是一个链接</p>
</a>
</body>
</html>
特别说明:
children获取的是直接子对象的集合,当p标签中再嵌套一层标签,比如span标签返回结果是undefined
<p name="p"><span name="s">这是一个链接</span></p>
此时alert(f.children.s)弹出undefined
若想获得,请这么写f.children[0].children.s依此类推
不过form对象可以跨层取