0

我正在尝试制作一个脚本,当您输入十六进制值并按提交时,它会将文本颜色更改为输入的颜色。

看来问题是我在变量 new html 中调用变量“userInput”的方式

有任何想法吗?

<script type="text/javascript">

function changeText3(){
    var userInput = document.getElementById('userInput').value;
    var oldHTML = document.getElementById('para').innerHTML;
    var newHTML = "<span style='color:userInput'>" + oldHTML + "</span>";
    document.getElementById('para').innerHTML = newHTML;
}

</script>

<p id='para'>Welcome to the site <b>dude</b> </p> 
<input type='text' id='userInput' value='#' />
<input type='button' onclick='changeText3()' value='Change Text'/>
4

3 回答 3

8

我建议使用样式参考而不是添加越来越多的跨度:

document.getElementById('para').style.color = userInput;
于 2009-11-12T13:47:10.263 回答
2

这只是导致问题的一行:

var newHTML = "<span style='color:" + userInput + "'>" + oldHTML + "</span>";
于 2009-11-12T13:41:45.450 回答
0

您需要将 userInput 变量“注入”到您的 newHTML 变量中。见下文;

<script type="text/javascript">

function changeText3(){
    var userInput = document.getElementById('userInput').value;
    var oldHTML = document.getElementById('para').innerHTML;
    var newHTML = "<span style='color:" + userInput + "'>" + oldHTML + "</span>";
    document.getElementById('para').innerHTML = newHTML;
}

</script>

<p id='para'>Welcome to the site <b>dude</b> </p> 
<input type='text' id='userInput' value='#' />
<input type='button' onclick='changeText3()' value='Change Text'/>
于 2009-11-12T13:43:51.670 回答