chatTextBox.innerHTML = '<span style="color:#FF0000"> hi </span>';
这就是我想做的,但是 innerHTML 只是变成了
<span style="color:#FF0000"> hi </span>
而不是hi
红色。
注意:我使用的是 TextArea,我希望能够以多种文本颜色书写。
chatTextBox.innerHTML = " <span style='color:#FF0000'> hi </span>
";
尝试这种方式,它应该理想地工作。
这可以通过一个contenteditable
元素来实现。总而言之,您可以使用该contenteditable
属性将任何元素转换为类似 textarea 的元素。该contenteditable
属性可以允许您输入<p>
标签,如下所示:
<p contenteditable="true" id="changeColor">
Click <span style="color:red">to</span> type
</p>
因为contenteditable
元素不是 a textarea
,所以您可以在其中添加实际代码。使用contenteditable
<p>
标签,您可以插入<span>
您在问题中向我们展示的标签,并使用 CSS 设置其颜色。在我对类似问题的回答中可以找到一个很好的例子和更多解释。
chatTextBox.value = 'hi';
chatTextBox.style.color = 'red';
现在,如果您想拥有许多不同颜色的文本,则不能使用 textarea,您将不得不使用某种 contenteditable 元素。
可通过以下方式访问样式:
document.getElementById("chatTextBox").style.visibility = 'hidden';
document.getElementById('chatTextBox').innerHTML = "Hello";
我不确定这是否是你想要的,但看看这个Codepen!它随机改变输入框的颜色。这是下面的HTML:
<div style="height:150px">
<h1>Type in the Input BOX below and see changing colors as you type!!</h1>
<br><br>
<input type="text" id="multi" style="width:100%; height:100px; font-size:26px;" onkeydown="myFunction()">
</div>
这是JS:
var myArray = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F'];
function myFunction(){
var rand = myArray[Math.round(Math.random() * (myArray.length - 1))];
var rand1 = myArray[Math.round(Math.random() * (myArray.length - 1))];
var rand2 = myArray[Math.round(Math.random() * (myArray.length - 1))];
var rand3 = myArray[Math.round(Math.random() * (myArray.length - 1))];
var rand4 = myArray[Math.round(Math.random() * (myArray.length - 1))];
var rand5 = myArray[Math.round(Math.random() * (myArray.length - 1))];
document.getElementById("multi").style.color = '#'+rand+rand1+rand2+rand3+rand4+rand5;
}
附言。我是 Java 脚本的新手,但我尝试提供帮助!