2011-03-28 5 views
0
var input = document.getElementById("myInput"); 
a.onkeydown = function() { 
    if (a.value.match("hi")) { 
     a.value.replace("hi", "span style='color:red;'>hi</span>"); 
    } 
}; 

<input type="text" id="myInput" /> 

'hi'를 빨간색 'hi'로 바꾸는 데 아무런 조치가 필요하지 않습니다.이 JavaScript 코드의 문제점은 무엇입니까?

+0

10 가지 질문을하고 아직 답변을 수락하지 않았습니다. 답변 수락의 개념을 이해했는지 확인하십시오. 댓글에 응답하는 방법을 알고 있다면 즉. ':)'(아래에 "덧글 추가") –

답변

1
  1. , 난 당신이 더 나은 옵션이 바로이 hi
  2. 를 입력 할 때 당신이 후 이벤트를 트리거 할 onkeyup을 사용하는 것입니다 input
  3. 을 의미 가정 그것을 대체 할 대체품.
  4. <script/>이 요소 뒤에 있는지 확인하여 요소가 DOM에 준비되어 있는지 확인하십시오.


모두 함께 당신이 얻을 퍼팅 :

<input type="text" id="myInput" /> 
<script type="text/javascript"> 
    var input = document.getElementById("myInput"); 

    input.onkeyup = function() { 
     if (input.value.match("hi")) { 
     input.value = input.value.replace("hi", "<span style='color:red;'>hi</span>"); 
    } 
}; 
</script> 

코드 예제를 jsfiddle에.

1

변수를 남기지 않는 한 변수 a은 텍스트 상자를 나타내지 않습니다.

1

범위 앞에서 < 개구부가 누락되었습니다. 또한 입력 요소 내부에 HTML을 중첩 할 수 있는지 여부는 알 수 없습니다. 더 좋은 방법은 값 == 'hi'인 경우 텍스트를 빨간색으로 만드는 클래스/스타일을 켜는 것입니다. 당신은 어디서든 선언되지 않은 변수 a를 사용하는

관련 문제