我有一个函数,我想改变用户输入的字符串的字体颜色,如果它等于一个数组中的某个单词。到目前为止,当我单步执行它时,它说它改变了字体颜色但是它实际上永远不会更新到屏幕上,我不知道为什么。这是我到目前为止所拥有的
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 {
}
}
}
}
答案 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)
到目前为止,我看到代码存在两个问题。
您在lastWordTyped上使用'fontcolor(“blue”)'参数。更改颜色的正确语法是element.style.color="#CCC"
。
您需要在一个范围中包装最后输入的单词,以便您可以将其定位并将颜色应用于该单词。