如果条件执行,为什么不能使用简单的Javascript?

时间:2017-05-29 16:20:05

标签: javascript html

<!DOCTYPE html>
<html>
<body>

<button onClick="Display()"></button>

<script>
function Display() {
    var a = 0;
    if(a = 0){
      alert("hello world");
    }
} 

</script>

</body>
</html>

我运行页面并单击按钮,没有任何反应。我不能为我的生活找出原因......

编辑:另一方面,即使我没有定义var CorrectActivities,这个代码无论如何都会执行:

function Display() {

    if(CorrectActivities = 3) {
        document.getElementById("ActivitiesResult").innerHTML = '<span>style="color:DarkGreen;font-weight:bold;font-size:30px;">3 out of 3 correct!</span>';

    } else if (CorrectActivities = 2) {
        document.getElementById("ActivitiesResult").innerHTML = '<span style="color:Crimson;font-weight:bold;font-size:30px;">2 out of 3 correct!</span>';

    } else if (CorrectActivities = 1) {
        document.getElementById("ActivitiesResult").innerHTML = '<span style="color:Crimson;font-weight:bold;font-size:30px;">1 out of 3 correct!</span>';

    } else {
    document.getElementById("ActivitiesResult").innerHTML = '<span style="color:Crimson;font-weight:bold;font-size:30px;">0 out of 3 correct!</span>';
    }
}

Edit2:谢谢你的回答。第一个代码是固定的,第二个代码仍然被破坏,无论我尝试什么。要在脚本的其他地方寻找错误......

4 个答案:

答案 0 :(得分:4)

比较值时,应使用==(等于)或===(相同且相同的类型)。 =仅用于设置变量值。

&#13;
&#13;
<!DOCTYPE html>
<html>
<body>

<button onClick="Display()"></button>

<script>
function Display() {
    var a = 0;
    if(a == 0){
    alert("hello world");
    }
} 

</script>

</body>
</html>
&#13;
&#13;
&#13;

在另一段代码中,我创建了一个jsfiddle。你有与第一部分相同的问题,错误的比较运算符。如果CorrectActivities未被声明,它就无法运行。我修复它(就像在第一部分中一样),声明变量并添加了三个按钮来测试所有情况,它似乎有效。

在案例3中你也有小错字,你在<span>style

有一个额外的右括号

答案 1 :(得分:0)

a = 0分配不是有效条件。 a == 0a === 0!a都可以满足您的需求。

CorrectActivities相同,使用CorrectActivities == 3代替CorrectActivities = 3

答案 2 :(得分:0)

在javascript =中指定一个值并将其返回,=====比较值

第一部分不会执行因为:

  • 您点击按钮
  • Display被召唤
  • if(a = 0)评估为if(0),即javascript if(false)

因此if内的代码无法运行。你想要的是if(a == 0)

&#13;
&#13;
function Display() {
  var a = 0;
  if (a == 0) {
    alert("hello world");
  }
}
&#13;
<button onClick="Display()"></button>
&#13;
&#13;
&#13;

第二部分if(CorrectActivities = 3)

将是if(3),这是javascript if(true)所以它将始终运行。再次你想要的是使用==运算符:

function Display () {
  if ((CorrectActivities == 3)) {
    document.getElementById('ActivitiesResult').innerHTML = '<span>style="color:DarkGreen;font-weight:bold;font-size:30px;">3 out of 3 correct!</span>'
  } else if ((CorrectActivities == 2)) {
    document.getElementById('ActivitiesResult').innerHTML = '<span style="color:Crimson;font-weight:bold;font-size:30px;">2 out of 3 correct!</span>'
  } else if ((CorrectActivities == 1)) {
    document.getElementById('ActivitiesResult').innerHTML = '<span style="color:Crimson;font-weight:bold;font-size:30px;">1 out of 3 correct!</span>'
  } else {
    document.getElementById('ActivitiesResult').innerHTML = '<span style="color:Crimson;font-weight:bold;font-size:30px;">0 out of 3 correct!</span>'
  }
}

答案 3 :(得分:0)

这是因为您要分配它而不是比较。

所以语句if(a = 0)总是真的。

使用==而不是=。

function Display() {
    var a = 0;
    if(a = 0){
        alert("hello world");
    }
} 

这会有所帮助。