私はこのチュートリアルに従っていましたが、いくつかの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>
(image.src.match内の)MATCHが実際に何を意味するのかわかりません。それはトグルアクションを持っているものですか?これに役立つ記事は見つかりませんでした。
さて、@ elclanrsはString.prototype.match()
の説明のためにすでにリンクを提供しています。しかし、以下はあなたのためにいくつかのことを明らかにする答えです。
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";
}
_
..は、bulbonWordが現在の画像src
属性にある場合、実行がifブロック内に移動するため、画像は_pic_bulboff.gif
_に変更されることを意味します。これは、image.src.match("bulbon")
が配列(上記の例で示され、docsでも説明されています)。
乾杯、うまくいけば、将来、いくつかの単語が文字列の一部であるかどうかを確認する方法を理解できたと思います:)
.match()
は、指定された文字列が正規表現に一致するかどうかをテストします。
あなたの例では、image.src
に文字列"bulbon"
が含まれているかどうかをテストします。
一致するものがある場合は、image.src
を"pic_bulboff.gif"
に変更します。
この関数の詳細については、次のことをお勧めします。
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/match
.matchは、この場合、文字列が正規表現に一致する天気を確認するためのテストを意味しますbulbon match image.src = "pic_bulbon.gif";一致する場合は電球を意味しますはオンであるためオフになり、オフの場合はelseステートメントで再びオンになります。
image.src.matchは、画像のソースファイル名が何か(この場合は「bulbon」)と一致することを確認するだけです。
一致する場合( "if")、コードのブロックが実行され、一致しない場合、別のコードのブロックが実行されます( "else")
function myFunction() {
var x, text;
// Get the value of the input field with id="numb"
x = document.getElementById("numb").value;
// If x is Not a Number or less than one or greater than 10
if (isNaN(x) || x < 1 || x > 10) {
text = "Input not valid";
} else {
text = "Input OK";
}
document.getElementById("demo").innerHTML = text;
}