JavaScript初级教程(第五课续)第3/3页
尝试这个例子并阅读下面的注释:
My favorite animal is ...
注释一个比较复杂的JavaScript程序。首先,我们看看表单本身:
<form name="the_form">
<select name="choose_category" onChange="swapOptions(window.document.the_form.choose_category.options[selectedIndex].text);">
<option selected>Dogs</option>
<option>Fish</option>
<option>Birds</option>
</select>
<select name="the_examples" multiple>
<option>poodle</option>
<option>puli</option>
<option>greyhound</option>
</select>
</form>
该表单有两个元素:一个下拉选单和一个列表选单。下列选单的处理器调用函数swapOptions()。该函数在首部已经
作了定义,其参数为- 被选的动物种类。
首部中我首先定义的几个数组:
var dogs = new Array("poodle","puli","greyhound");
var fish = new Array("trout", "mackerel", "bass");
var birds = new Array("robin", "hummingbird", "crow");
注意这些数组的命名和下拉选单中的命名一致。很快你就会明白为什么。现在我们看看当下拉选单被改变时被调用的函数:
function swapOptions(the_array_name)
{
var numbers_select = window.document.the_form.the_examples;
var the_array = eval(the_array_name);
setOptionText(window.document.the_form.the_examples, the_array);
}
该函数的定义包括一个参数:the_array_name。如果打开下拉选单并选择"Fish" ,则the_array_name就等同于字符串"Fish"。
函数主体中第1行包括一个变量用于引用第2个表单元素:列表选单。
第2行引入一个新概念:eval()。eval()比较奇特,我们留在以后的课程中讲解。第2行命令的这些结果是变量the_array将等同于前面所定义的数组之一。如果the_array_name是"Fish",the_array则等同于Fish数组。如果你想了解这是怎么作的,请学习eval。
第3行定义另一个函数setOptionText()。setOptionText()用于将the_array赋值给列表选单。以下为该函数内容:
function setOptionText(the_select, the_array)
{
for (loop=0; loop < the_select.options.length; loop++)
{
the_select.options[loop].text = the_array[loop];
}
}
该函数有两个参数:对选单元素的引用和一个数组。第1行设立一个for循环,由于循环所有的选单元素。注意选单元素的选项属性是该选单所有选项组成的数组。因为它是一个数组,你可以用长度(length)属性发现数组的元素数目。第1次循环时,循环变量值是0。循环的主体值为:
the_select.options[0].text = the_array[0];
如果你在下拉选单中选择了"Fish",则the_array[0]就是"trout",所以该行命令将列表选单中的第1个选项改成"trout" 。下一次循环时,循环等于1,并且列表选单中第2个选项则是 "mackerel" 。
如果你理解了该例子,你对JavaScript的了解就比较深了。
初级教程到此结束,随后要发布进阶教程,敬请关注。
相关文章
Javascript中Array.prototype.map()详解
map 方法会给原数组中的每个元素都按顺序调用一次 callback 函数。callback 每次执行后的返回值组合起来形成一个新数组。 callback 函数只会在有值的索引上被调用;那些从来没被赋过值或者使用 delete 删除的索引则不会被调用。2014-10-10
Javascript中indexOf()和lastIndexOf应用方法实例
这篇文章主要介绍了JavaScript中的indexOf()和lastIndexOf()方法使用实例,是JS入门学习中的基础知识,有需要的朋友可以参考下。2016-08-08
javascript input图片上传及预览,FileReader预览图片
本文放置了html完成代码案例,有需要大家可以直接复制测试功能,采用input文本框图片上传,使用FileReader预览图片效果2021-06-06
javascript开发技术大全-第1章javascript概述
JavaScript 为 HTML 设计师提供了一种编程工具HTML 创作者往往都不是程序员,但是 JavaScript 却是一种只拥有极其简单的语法的脚本语言!几乎每个人都有能力将短小的代码片断放入他们的 HTML 页面当中。2011-07-07
De facto standard 世界上不可思议的事实标准
前些天IEBlog中提到实现互通并不是只靠标准就行,其中举出了一些关于事实上的标准的考虑——所谓“事实上的标准”,也就是并非标准,但大家都遵循着它去做事情的那么一种东西。2010-08-08


最新评论