我正在学习本教程,发现一些
javascript代码难以理解.
链接到教程
http://www.w3schools.com/js/tryit.asp?filename=tryjs_lightbulb
我需要澄清代码
<script> function changeImage() { var image = document.getElementById('myImage'); if (image.src.match("bulbon")) { image.src = "pic_bulboff.gif"; } else { image.src = "pic_bulbon.gif"; } } </script>
我不明白MATCH(在image.src.match中)实际意味着什么.
它是否具有切换动作的东西.
我找不到任何有用的文章.
解决方法
好吧,@ elclanrs已经为String.prototype.match()解释提供了
a link.但是,下面是一个为您澄清一些事情的答案.
HTML:
<img id="myImage" src="http://www.w3schools.com/js/pic_bulbon.gif" />
JavaScript的:
// capture the image var image = document.getElementById('myImage'); console.log(image.src); // http://www.w3schools.com/js/pic_bulbon.gif console.log(image.src.match("word-not-in-src-name")); // null console.log(image.src.match("bulbon")); // ["bulbon",index: 32,input: "http://www.w3schools.com/js/pic_bulbon.gif"] // image.src.match("bulbon") will return an Array,but it evaluates true in JavaScript // This is the reason why "Evaluates true!" is printed out to console if(image.src.match("bulbon")) { console.log("Evaluates true!"); } // To prove my point,"Empty array!" also will be printed out to console if([]) { console.log("Empty array!"); }
你可以从JS FIDDLE EXAMPLE开始自己看
因此,要返回代码示例:
if (image.src.match("bulbon")) { image.src = "pic_bulboff.gif"; } else { image.src = "pic_bulbon.gif"; }
..如果bulbon word在当前图像src属性中,则图像将被更改为pic_bulboff.gif,因为执行将在if块内移动,因为image.src.match(“bulbon”)将返回一个数组,(如在上面的例子中演示过,并在docs中也有解释).
干杯,希望你现在明白如何检查某些单词是否是未来字符串的一部分:)