return x 对第二个函数不起作用

问题描述 投票:0回答:1

好吧,我不知道如何表达这个问题,所以如果您有关于可见性的建议,我很高兴提供提示。 现在解决我的问题,我正在尝试运行我在 Tampermonkey 中编写的脚本,但他不会返回应该在第一个函数中找出的正确答案。 据我所见,控制台不会返回错误。我不确定我做错了什么。 我的代码目前如下所示:

document.getElementsByClassName("jumbotron mobile-no-padding-question").addEventListener("load", auswerten());

function question() {
  var question = document.getElementsByClassName("mobile-padding-question");
  var x = 0;
  var questions = ["x", "y", "z"];
  while (x < 3) {
    if (question == questions[x]) {
      return x;
      break;
    } else {
      x++;

    }
  }
}

function answer() {
  var answers = ["x", "y", "z"];
  var x = question();
  window.alert(answers[x]);
  document.getElementById(answers[x]).checked = true;
  document.getElementById("next-question").click();
}

function main() {
  for (var i = 0; i < 10; i++) {
    answer();
  }
}

我以前从未用过 Javascript 编码,所以我不知道任何先进的技术。使用的所有东西都是在旅途中研究并一起构建的。如果有人知道另一种方法,我很乐意尝试。

javascript browser
1个回答
2
投票

函数

getElementsByClassName
返回一个元素数组,并且您在求值时不会访问任何特定元素。

在这里,您试图找到问题

if (question == questions[x])
但由于
question
是一个数组永远不会工作,因此该函数永远不会返回您正在寻找的问题的索引。

您可以像

if (question[x].innerHTML.trim() == questions[x])

一样更新评价
© www.soinside.com 2019 - 2024. All rights reserved.