初学者 javascript 按钮

beginner javascript button

我真的很难解决一个基本的 javascript 问题,我找不到 Google 帮助的正确方法。我一直在练习 Javascript,但到目前为止,我主要只是遵循提示,而不是编写自己的想法。我真的花了几个小时尝试自己解决这个问题。这是我第一次尝试从头开始生成自己的 javaScript。

基本上,我只是想做一些类似选择你自己的冒险故事的事情。这个想法是 html 中的 p 元素随着 yes 和 no 响应的变化而变化。 出于某种原因,我的 javascript 代码跳过了我的 if 并转到了我的 else,这意味着不满足第一个条件。对于我的生活,当用户单击“是”时,我无法弄清楚如何满足第一个 if 条件。有什么建议吗?

function beginWalk() {
  var start = "You go outside. It's a beautiful day!";
  var stay = "You stay inside and snuggle up in your bed.";

  {
    if (document.getElementById("yes").click == true) {
      document.getElementById("change").innerHTML = start;
    } else {
      document.getElementById("change").innerHTML = stay;
    }
  }
}
<button onclick="beginWalk()" value="true" id="yes">Yes</button>
<button onclick="beginWalk()" value="false" id="no">No</button>
<p id="change">
  change
</p>

简单的解决方案是在您的按钮点击事件中传递您需要的参数,并以此为基础您的条件。

function beginWalk(walk) {
  const start = "You go outside. It's a beautiful day!";
  const stay = "You stay inside and snuggle up in your bed.";

  if (walk === true) {
    document.getElementById("change").innerText = start;
  } else {
    document.getElementById("change").innerText = stay;
  }
}
<button onclick="beginWalk(true)" value="true" id="yes">Yes</button>
<button onclick="beginWalk(false)" value="false" id="no">No</button>
<p id="change">
  change
</p>

它不使用 if 语句,但它是这样工作的!

function beginWalk() {
   var start = "You go outside. It's a beautiful day!";
   var stay = "You stay inside and snuggle up in your bed.";

    document.getElementById("yes").addEventListener("click", () => {

    document.getElementById("change").innerHTML = start}); 

    document.getElementById("no").addEventListener("click", () => {    

    document.getElementById("change").innerHTML = stay});
    }

干杯!

您当前的代码存在逻辑错误。您的 if 条件将始终 return false 并且将执行 else 中的代码,因为以下行没有意义。

if (document.getElementById("yes").click == true)

不过,您可以进行如下所示的一些调整。这里我将 status 的默认值传递为 false,这意味着如果函数中没有传递任何内容,则 status 将被视为 false。如果将 true 传递给函数,则将执行 if 条件。它使代码更简洁。

function beginWalk(status=false) {
  var text = "You stay inside and snuggle up in your bed.";
  if(status===true){
     text = "You go outside. It's a beautiful day!";
  }
  document.getElementById("change").innerText = text;
}

你的 html 可以像下面给出的那样

<button onclick="beginWalk(true)" value="true" id="yes">Yes</button>
<button onclick="beginWalk()" value="false" id="no">No</button>
<p id="change">
  change
</p>

function beginWalk() {
  var start = "You go outside. It's a beautiful day!";
  var stay = "You stay inside and snuggle up in your bed.";

  {
    if (event.target.value === 'true') {
      document.getElementById("change").innerHTML = start;
    } else {
      document.getElementById("change").innerHTML = stay;
    }
  }
}
<button onclick="beginWalk()" value="true" id="yes">Yes</button>
<button onclick="beginWalk()" value="false" id="no">No</button>
<p id="change">
  change
</p>