2014-07-22 1 views
-8

단추를 지울 때 clear 알림을 받고 싶습니다. 버튼이 q = 11으로 설정되고 q < 12으로 설정되고 clear으로 경고하는 방식으로 설정합니다. 내가 도대체 ​​뭘 잘못하고있는 겁니까?내가 뭘하고 있니? HTML 및 자바 스크립트

<html> 
    <head> 
    </head> 
    <body> 
      <script type="text/javascript"> 
     var q = 13 
     if(q < 12) { 
      alert("clear"); 
      var q = 13; 
     } 
     </script> 
      <button onclick="var q = 11">clear</button> 
    </body> 
</html> 
+5

이런 제목의 질문은 피하는 경향이 있습니다. – davidxd33

+0

1. 매번 새로운 'var q'를 정의하고 있습니다. 당신은'function (q)'을 가져야하고 그 변수를 변수에 전달해야합니다. –

+0

다음 중 하나를 의미합니다. var q가 변경된 시점의 설문 조사 또는 버튼을 클릭 할 때 메서드 호출 – Flynn

답변

3

이 코드의 실행 방법에 대한 근본적인 오해가 있습니다. 페이지가로드 될 때 브라우저가 코드에 포함되지 않은 (즉 함수 내에) <script> 요소를 만나면 해당 스크립트가 실행됩니다.

그래서 때 페이지가로드, 그것은 당신의 <script> 블록에서보고 :

  1. 변수 q (13)에
  2. 가 이하 (<) 비교기를 사용하여 q12에 비교 설정합니다.
  3. 위의 조건이 거짓이므로 대괄호로 들어 가지 않습니다.

단추는 q을 11로 설정하지만 더 이상 조건부를 확인하지 않으므로 코드의 해당 시점과 관련이 없습니다. 원하는 기능을 수행하려면 자바 스크립트 함수를 사용하십시오.

<html> 
    <head> 
    </head> 
    <body> 

     <script type="text/javascript"> 
     function compare(q) { 
      if(q < 12) { 
       alert("clear"); 
      } 
     </script> 

     <button onclick="compare(11)">clear</button> 

    </body> 
</html> 
+0

죄송합니다 @ FrédéricHamidi가 그 편집으로 발끝을 밟을 의향이 아니 셨습니다! 나는 당신의 버전으로 되돌아 갔다. – esqew

+0

전혀 문제가 없습니다. 유일한 중요한 점은 함수 이름이 이제 일관된다는 것입니다. 두 이름 중 하나를 사용하면됩니다. :) –

관련 문제