我正在玩香草javascript,想用if语句来切换。p用我的document.getElementById("demo").innerHTML = result;写得很好,但是当我再次单击它时,它不会消失。
function myFunction() {
var str = "Visit W3Schools";
var patt = /w3schools/i;
var result = str.match(patt);
document.getElementById("demo").innerHTML = result;
if(document.getElementById("demo") == result){
document.getElementById("demo") = "0";
}
}<p>Click the button to do a case-insensitive search for "w3schools" in a string.</p>
<button onclick="myFunction()">Try it</button>
<p id="demo"></p>
发布于 2019-06-22 17:22:32
document.getElementById("demo") == result不是一个有用的比较。左边是DOM元素,而右边是数组.另外,将"0"分配给DOM元素也是没有意义的。要修复它,将.innerHTML添加到这两个方面,就像在前面的行中一样。另外,在innerHTML上匹配,而不是在常量str上匹配。
发布于 2019-06-22 17:23:01
document.getElementById("demo")返回null或HTMLElement,因此您的条件将始终为false。不仅如此,您的result返回将返回数组或null。您不能以正确的方式将您的getElementById与result进行比较。
function myFunction() {
var str = "Visit W3Schools";
var patt = /w3schools/i;
var result = str.match(patt);
if(result){ // the right way to write your condition
document.getElementById("demo") = "0";
}
}更新:
function myFunction() {
var str = "Visit W3Schools";
var patt = /w3schools/i;
var result = str.match(patt);
if(result){
document.getElementById("demo") = "0";
} else {
document.getElementById("demo").innerHTML = result[0]; // result index 0 here because match return array
}
}发布于 2019-06-22 17:41:27
他们是少数的东西,你错过或混淆。
str.match返回一个数组@,所以使用写result[0]实际上是首先匹配的字符串document.getElementById("demo").innerHTML = result[0];应该将p#demo innerHTML更改为W3Schools,然后将p innerHTML与始终为true的字符串进行比较。所以在p innerHTML中总是"0“。innerHTML,您必须在if-else中添加这两种情况,以便在
function myFunction() {
var str = "Visit W3Schools";
var patt = /w3schools/i;
var result = str.match(patt);
// if W3Schools is in innerHTML
if (document.getElementById("demo").innerHTML == result[0]) {
// change "0" to "" for making the innerHTML blank
document.getElementById("demo").innerHTML = "0";
}
else {
document.getElementById("demo").innerHTML = result[0];
}
}<p>Click the button to do a case-insensitive search for "w3schools" in a string.</p>
<button onclick="myFunction()">Try it</button>
<p id="demo"></p>
https://stackoverflow.com/questions/56717560
复制相似问题