这个JavaScript代码有什么问题?

时间:2011-03-28 23:41:32

标签: javascript javascript-events

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'不会采取任何行动。

3 个答案:

答案 0 :(得分:1)

除非您遗漏某些内容,否则变量a不代表您的文本框。

答案 1 :(得分:1)

你错过了开场&lt;在跨度之前,为一个。另外,我不知道你是否可以在输入元素中嵌套HTML。如果值=='hi',更好的方法是打开使文本变为红色的类/样式。

答案 2 :(得分:1)

  1. 您正在使用未在任何地方声明的变量a,我认为您的意思是input
  2. 更好的选择是使用onkeyup,只要您输入hi
  3. ,就会触发事件
  4. 完成替换后,您需要将其分配给某些内容。
  5. 确保<script/>位于元素之后,以便元素在dom中准备就绪。

  6. 总而言之,你得到了这个:

    <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上的代码示例。