在上次的教程里,我给大家介绍了JavaScript的三个功能,比如写入HTML文件的输出,设置按钮对事件做出反应,改变HTML内容。其实JavaScript还有非常丰富的功能,在这次的教程里,我再介绍JavaScript的三个功能。
JavaScript:改变 HTML 图像
JavaScript可以动态地改变HTML里<image>标签的内容,从而改变HTML中的图像显示。
为什么要这么做呢?
当我们在视频网站看视频的时候,经常会用到一个功能:关灯。这个功能方便我们专心地观看视频,而不被视频框周围的广告或者其它功能所打扰。其实在点击关灯按钮的时候,我们并没有真的关灯,而是改变了HTML中的图像,从而达到了关灯的效果。
举个例子,下图里是一段通过点击灯泡来控制其亮灭的代码:
在代码的<body>区域内,我们可以规划HTML网页的内容。在这个代码里,我们先在<script>区域内定义了一个函数changeImage(),这个函数的功能是改变当前图像,当图像源src的名字里有“bulbon”这串字符的时候,把图像源改成eg_bulboff.gif,需要注意的是这个gif图像是需要真实存在的,而且按照代码里的指示,两张图像eg_bulbon.gif和eg_bulboff.gif都需要放在文件夹“i”下。"/i/eg_bulboff.gif"是图像“eg_bulboff.gif”的路径名。
如果我们点击灯泡,那么就会让灯泡变亮或者变暗,达到开灯,关灯的效果。
当然,JavaScript 能够改变任意 HTML 元素的大多数属性,而不仅仅是图片。这个特性我们以后还会多次用到。
JavaScript:改变 HTML 样式
刚才提到JavaScript可以改变HTML元素的大多数属性,比如改变图像。其实,JavaScript还可以改变 HTML 元素的样式,这属于改变 HTML 属性的变种。
举一个简单的例子:
x=document.getElementById("demo")//找到元素
x.style.color="#ff0000";//改变样式
上面第一行代码是找到demo这个元素,并用x指代;第二行代码是改变x的颜色,指定颜色是#ff0000,在网上搜了一个呢,发现这个颜色代码rgb(255,0,0),也就是纯正的红色。
下面我们看一个熟悉的例子:
对应的网页是这样的:
在上图的代码里,我们可以看到在<script>的代码区域里,定义了一个函数myFunction(),这个函数的功能就是找到元素“demo”,并且改变其颜色为"#ff0000"。
“demo”是什么呢?我们看到在<script>上方有一段代码:
<p id="demo">
JavaScript 能改变 HTML 元素的样式。
</p>
在<p id="demo">里,我们看出来“demo”是“JavaScript 能改变 HTML 元素的样式。”这一行文字。
那么当我们点击按钮“点击这里”的时候,代码就会执行“myFunction()”这个函数的功能,也就是改变“JavaScript 能改变 HTML 元素的样式。”这一行文字的颜色为"#ff0000"(纯正的红色)。
过程如下:
大家可以在http://www.w3school.com.cn/tiy/t.asp?f=js_intro_style试试其他的颜色。
JavaScript:验证输入
由于其灵活的功能,JavaScript 常用于验证用户的输入。
举个例子:
if isNaN(x) {alert("Not Numeric")};
我解释一下这行代码,NaN是Not a Number的缩写。
isNaN(x)就是判断是不是一个数字,如果x不是一个数字,那么isNaN(x)返回yes,否则返回no。
所以if isNaN(x) {alert("Not Numeric")};这行代码的意思就是,如果x不是一个数字,就发出警告“Not Numeric”!
下面我们在具体的情形中看看JavaScript在验证输入方面的作用:
对应的HTML文件内容如下:
在代码区域,代码用<input>标签设置了一个输入框,就是上图中“点击这里”按钮左边的框,可以输入任意文本,然后定义了一个函数myFunction(),这个函数先用x指代ID是“demo”的值,这个“demo”ID指向input的文本,所以x就是我们在输入框里输入的文本。
如果我们输入一个数字,那么HTML网页不会有任何反应。但是如果我们输入的不是数字,而是字符什么的,那么网页就会弹出警告框。如下:
小结:
这次我们介绍了JavaScript的三个功能,更改图像,更改样式,设置验证输入。其实JavaScript的功能十分强大,不过“千里之行,始于足下”,在介绍了JavaScript的几个典型的功能之后,我会给大家详细介绍JavaScript的具体语法知识,让大家更加深入地体验JavaScript的独特编程乐趣。