javascript - 单击 3 次时替换元素不起作用

标签 javascript html ajax replace element

我编写了简短的 JavaScript 代码来在点击 3 次后替换元素。点击次数超过 3 次后,该元素会将其自身替换为 url 元素。但问题是它行不通。我试图让它在点击 3 次后自行替换,但是,我可能编码错误。请赐教。

原始代码:

function loadDoc() {
  var xhttp = new XMLHttpRequest();
  xhttp.onreadystatechange = function() {
    if (this.readyState == 4 && this.status == 200) {
     document.getElementById("replace1").innerHTML = this.responseText;   
    }
  };
  xhttp.open("GET", "https://natevanghacks.com/replacements/yoinkexecutor2.html"), true;
  xhttp.send();
}

重新编码后仅可点击 3 次,但不起作用:

function loadDoc() {
  var xhttp = new XMLHttpRequest();
  let count = 0;
  let callback = function() {
    count++;  
    if (count >= 3) {
      document.getElementById("replace1").innerHTML = this.responseText;  
    }
    iframe1.click(callback);  
    xhttp.open("GET", "https://natevanghacks.com/replacements/yoinkexecutor2.html"), true;
    xhttp.send();
  }
};

最佳答案

count 设置为全局变量意味着在函数之外:

let count = 0;
function loadDoc() {
  var xhttp = new XMLHttpRequest();

  let callback = function() {
    count++;  
    if (count >= 3) {
      document.getElementById("replace1").innerHTML = this.responseText;  
    }
    iframe1.click(callback);  
    xhttp.open("GET", "https://natevanghacks.com/replacements/yoinkexecutor2.html"), true;
    xhttp.send();
  }
};

当您在函数内定义 count 时,每次 count 都会重置为其默认值 0

这就是为什么您需要在函数外部定义count

关于javascript - 单击 3 次时替换元素不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57930263/

相关文章:

c# - 使用 .load jquery 时执行 C# 代码

javascript - Ionic 2 简单单例服务 [部分错误]

javascript - React router如何根据全局变量加载css

javascript - 循环更改文档中的所有 alt =""值

javascript - Javascript 无法识别 HTML 表单输入?

html - 具有固定背景的 Div 部分未在 Firefox 中显示

javascript - 如何独立使用 Polymer TemplateBinding 库?

javascript - 为第 1 行请求未知参数 '0' - 它在第一行中没有插入任何值

ajax - 如何让 Richfaces 组件在按需加载的弹出窗口中工作?

javascript - 如何在angular中使用http.get方法获取json数据?