javascript没有改变文本颜色

时间:2014-09-09 19:27:02

标签: javascript

我有一个函数,我想改变用户输入的字符串的字体颜色,如果它等于一个数组中的某个单词。到目前为止,当我单步执行它时,它说它改变了字体颜色但是它实际上永远不会更新到屏幕上,我不知道为什么。这是我到目前为止所拥有的

function getLastWord() {
    var input = document.getElementById("my_text");
    //var input = document.getElementById(textArea.value);
    //var lineIn = document.getElementById(my_text).innerHTML;
    var inputValue = input.value;
    var lastWordTyped
    var changeColorOfWord;

    if (input == null) {
        input == " ";
    }

    //lastWordTyped = input.substr(input.trim().lastIndexOf(" ") + 1);
    lastWordTyped = inputValue.substr(inputValue.trim().lastIndexOf(" ") + 1);

    if (input != null) {

        for (var i = 0; i < reservedKeyWords.length; i++) {
            if (reservedKeyWords[i] === lastWordTyped) {
                lastWordTyped = lastWordTyped.fontcolor("blue");
                my_text.replace(inputValue, lastWordTyped);
            } else {

            }


        }
    }
}

2 个答案:

答案 0 :(得分:1)

string.fontcolor是遗留的,即使在这种情况下我认为它是可行的选项,也不应该使用

基本上,您正在做的是在单词周围添加font标记:

var txt = 'hello world';
txt = txt.fontcolor('blue');
//txt = '<font color="blue">hello world</font>';

你没有显示你对结果做了什么,但是如果你真的将它放在一个HTML元素中它应该可以工作,即使不使用fontcolor,我宁愿使用element.style.color。这需要稍微多一点的工作:

var ele = document.querySelector('#my_text');
ele.style.color = 'blue';
ele.innerHTML = lastWordTyped;

如果您仍想使用.fontcolor方法,可以保留问题中的内容并添加

input.innerHTML = my_text;

答案 1 :(得分:1)

到目前为止,我看到代码存在两个问题。

  1. 您在lastWordTyped上使用'fontcolor(“blue”)'参数。更改颜色的正确语法是element.style.color="#CCC"

  2. 您需要在一个范围中包装最后输入的单词,以便您可以将其定位并将颜色应用于该单词。