如何在JavaScript中更改一个字母的颜色?
我有一个字符串,我只想在JavaScript中更改一个颜色字母 HTML: 但是我不知道如何改变一个单词的颜色,例如hello的“o”。 如果我因为 对于var i=0;i可以对元素的属性使用该方法: const元素=document.querySelector'lettslist'; element.innerHTML=element.innerHTML.replace'o','o'; 您好在您的代码中:如何在JavaScript中更改一个字母的颜色?,javascript,html,css,Javascript,Html,Css,我有一个字符串,我只想在JavaScript中更改一个颜色字母 HTML: 但是我不知道如何改变一个单词的颜色,例如hello的“o”。 如果我因为 对于var i=0;i可以对元素的属性使用该方法: const元素=document.querySelector'lettslist'; element.innerHTML=element.innerHTML.replace'o','o'; 您好在您的代码中: var letters = document.getElementById() 实
var letters = document.getElementById()
实际上,您检索的是整个元素,而不是其中的文本。这可能是它完全改变颜色的原因
所以我建议你使用
document.getElementById().innerHtml()
。
此函数将检索HTML标记div中的内容。然后您可以像
for(var i = 0; i<letters.length; i++){
//only change the one you want to
if(i == 4 // or whatever you like){
element.innerHTML = element.innerHTML.replace(letters[i], '<span style="color: yellow;">'+letters[i]+'</span>');
}
}
它与
for(var i = 0; i<letters.length; i++){ if(i == 4 { element.innerHTML =element.innerHTML.replace(letters[i], '<span style="color:yellow;">'+letters[i]+'</span>');}}
但是如果一个单词包含两个相似的字母,我不能同时给这两个字母上色。。。为什么会这样?如果一个单词包含两个相似的字母,那么对于for循环,我们可以使用字母的位置作为i在里面
如果i==n,replaceletter[n],样式化span标记它会更改所有文本当然,你确定吗???是的,我确定;lettres.length和lettres[i]将是未定义的:@SarahB,因为它根据字母在该单词中的位置为字母着色。if条件设置为找到一个具有特定位置的字母(单词的第4位到第5位)来给单词中的所有字母上色您需要将if条件更改为if(字母[i]==o//或任何其他需要上色的字母,然后再进行颜色更改。呃,我刚刚意识到这是一个糟糕的解决方案。您应该使用str.replace()要直接将颜色更改应用于该单词中的所有字母,您需要str.replace/o/g,'
for(var i = 0; i<letters.length; i++){
//only change the one you want to
if(i == 4 // or whatever you like){
element.innerHTML = element.innerHTML.replace(letters[i], '<span style="color: yellow;">'+letters[i]+'</span>');
}
}
for(var i = 0; i<letters.length; i++){ if(i == 4 { element.innerHTML =element.innerHTML.replace(letters[i], '<span style="color:yellow;">'+letters[i]+'</span>');}}