2013-11-07 7 views
-2

Почему переменная x остается ложной даже после многократного нажатия на кнопку?Выполнение основного javascript-кода

<p id="text">Bonjour</p> 
     <button type="button" id="button">Push to tranform</button> 
     <script> 
     var x=true; 
     document.getElementById("button").onclick= 
      function(){ 
      if ($x=true) { 
       document.getElementById("text").innerHTML="Au revoir"; 
       $x=false; 
      } 
      else { 
       document.getElementById("text").innerHTML="Bonjour"; 
       $x=true; 
      } 
     }; 
     </script> 
+2

удалить '$' из вашего кода. –

+0

почему $ x не просто x? – OGHaza

+1

вы определяете две разные переменные: $ x и x и используете назначение вместо сравнения в условиях 'if'. –

ответ

3

Есть несколько проблем в коде:

  • вы не определяете $x в любом месте, вы определите x, но он не используется.

  • Ваш if плохо: if ($x=true) должен быть if ($x==true) или даже if ($x===true).

= это назначение, тогда как ==/=== это сравнение/строгое сравнение.

Условие $x = true (что присвоение) является всегда правда так $x всегда становится false.

0

Вы путаете оператор = (с) присваивания == или === (сравнение или строгого сравнения)

Кроме того, вы объявляете переменную x и использовать переменную $x не заявленную в любом месте.

Наконец, когда вы проверяете booelan, вам не нужно сравнивать его с истинным или ложным, но вы скорее просто проверяете его значение непосредственно в объявлении вашего состояния. Так предпочитают if(x) к if(x===true)

1

В следующем коде, вы назначая значение истина, а не тестирования это

if($x=true) 

должен быть

if($x==true) 
0

Почему x переменная остается ложной

Потому что вы определили его как x, но вы устанавливаете $x.

$x - это не то же самое, что и x. Это два разных имени переменной; установка одного и ожидание изменения другого никогда не сработает.

Извлеките знаки $ из вашего имени переменной, где вы его используете.


Также if ($x=true) неправ.

Вам необходимо использовать == (двойное равное) или === (тройной равный), чтобы сделать сравнение. Если вы используете один знак равенства, вы устанавливаете переменную (даже в инструкции if()).

Решение: Изменение = в == или ===.

0
<p id="text">Bonjour</p> 
    <button type="button" id="button">Push to tranform</button> 
    <script> 
    var x=true; 

document.getElementById("button").onclick= 
      function(){ 
      if (x===true) { 
       document.getElementById("text").innerHTML="Au revoir"; 
       x=false; 
      } 
      else { 
       document.getElementById("text").innerHTML="Bonjour"; 
       x=true; 
      } 
     }; 
+0

Требуется 'var $ x = true'. – Halcyon

+0

@FritsvanCampen - Конечно. – Manolo

0
<p id="text">Bonjour</p> 
     <button type="button" id="button">Push to tranform</button> 
     <script> 
     var x=true; 
     document.getElementById("button").onclick= 
      function(){ 
      if (x==true) { 
       document.getElementById("text").innerHTML="Au revoir"; 
       x=false; 
      } 
      else { 
       document.getElementById("text").innerHTML="Bonjour"; 
       x=true; 
      } 
     }; 
     </script> 
Смежные вопросы