浏览器除了跟踪表单中每种类型的元素之外,还保留一张表单中所有控件元素的列表。这个列表是另一个数组,它的内容根据HTML标记语言在源代码中的顺序而定。
使用这些名字对于直接创建元素的引用非常有效,然而,有时脚本需要浏览表单中的所有元素,这种情况在表单内容随页面的载入改变时尤其会发生,因为文本域的数目基于浏览器的类型而改变,比如,页面上的脚本会使用document.write()加入一个额外的文本框,以满足windows用户对信息的要求。
下面的代码段以在for循环中使用form.elements[]属性为例,这个循环查看表单中的所有元素,将文本域的内容设置为空字符串。脚本不能简单地进入表单内部,把每个元素设置为空字符串,因为有些元素是按钮,它们没有可以设置为空字符串的value属性。
var form=window.document.forms[0]
for(var i=0; i<form.elements.length; i++){
if(form.elements[i].type=="text"){
form.elements[i].value=""
}
}
在第一个语句中,创建一个变量form,它含有对文档第一个表单的引用。这么做是为了以后在脚本中多次引用表单元素时,每个引用的典型长度更短(这样会很快)。可以把form变量作为快捷键,来给嵌套在表单更深层的内容建立引用。
下一步,我们开始对表单中的elements数组元素进行循环搜索。每个表单元素有一个type属性,它表示表单元素的类型:文本、按钮、单选框、复选框等等。我们所感兴趣的是类型为text的元素,对每个这样的元素,都将其value属性设置为空字符串。