首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Javascript与if语句切换

Javascript与if语句切换
EN

Stack Overflow用户
提问于 2019-06-22 17:17:55
回答 3查看 422关注 0票数 2

我正在玩香草javascript,想用if语句来切换。p用我的document.getElementById("demo").innerHTML = result;写得很好,但是当我再次单击它时,它不会消失。

代码语言:javascript
运行
复制
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";
  }
}
代码语言:javascript
运行
复制
<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>

EN

回答 3

Stack Overflow用户

发布于 2019-06-22 17:22:32

document.getElementById("demo") == result不是一个有用的比较。左边是DOM元素,而右边是数组.另外,将"0"分配给DOM元素也是没有意义的。要修复它,将.innerHTML添加到这两个方面,就像在前面的行中一样。另外,在innerHTML上匹配,而不是在常量str上匹配。

票数 0
EN

Stack Overflow用户

发布于 2019-06-22 17:23:01

document.getElementById("demo")返回null或HTMLElement,因此您的条件将始终为false。不仅如此,您的result返回将返回数组或null。您不能以正确的方式将您的getElementByIdresult进行比较。

代码语言:javascript
运行
复制
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";
  }
}

更新:

代码语言:javascript
运行
复制
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
  }
}
票数 0
EN

Stack Overflow用户

发布于 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中添加这两种情况,以便在

代码语言:javascript
运行
复制
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];
  }
}
代码语言:javascript
运行
复制
<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>

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56717560

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档