我正在尝试创建一个脚本,当您输入十六进制值并按提交时,它会将文本颜色更改为输入的颜色。
似乎问题是我在变量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'/>
答案 0 :(得分:8)
我建议使用样式引用而不是添加越来越多的跨度:
document.getElementById('para').style.color = userInput;
答案 1 :(得分:2)
这只是导致问题的一行:
var newHTML = "<span style='color:" + userInput + "'>" + oldHTML + "</span>";
答案 2 :(得分:0)
您需要将用户输入变量“注入”到新的HTML变量中。见下文;
<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'/>