无法更改文本区域中关键字的颜色

时间:2014-08-23 21:57:42

标签: javascript css

我正在尝试编写一个程序,可以检测你是否插入了一个JavaScript关键字,如果你有,它将改变它的颜色,以便它会脱颖而出(它最终将提交代码,我会用它来在chromebook上进行离线调试)。但是,当它与关键字匹配时,我似乎无法更改文本字段内的文本颜色。 jsFiddle Example

以下是代码:

CSS:

#JScodeinputbox{font-family:Arial;}
#JScodeoutputbox{}
.JSfunctions{color:blue;}

HTML:

<body>
<textarea id="JScodeinputbox" wrap="logical" rows="30" cols="70" onkeyup="checkHighlight();"></textarea>
<canvas>
</canvas>
</body>
</html>

JavaScript的:

var codeInput = document.getElementsByTagName("textarea");
var keywords = new Array("var", "if");
function checkHighlight(){
    var codeInput1 = codeInput[0].value;
    if(codeInput1 === keywords[0]){
        keywords[0].indexOf(codeInput1).className = "JSfunctions";
    }
}

如果有人知道如何解决这个问题或更简单的替代方案(最好不涉及JQuery,PHP等),我们将不胜感激。
PS:我知道这不是关于它的关键,我有这个原因。当我运行其他方法时它也有效,所以我不认为它是格式化的(但它可能是)。

1 个答案:

答案 0 :(得分:2)

您可以对此代码使用JQuery Highlight Textarea插件(来自网站的示例)

<textarea cols="50" rows="5">...</textarea>

<script>
  $('textarea').highlightTextarea({
    words: ['Lorem ipsum', 'vulputate']
  });
</script>

问题解决了