我有这个工作代码,带有一个 innerHTML 示例:
<script type="text/javascript">
// ejemplo de innerHTML
function cambiarColor(){
var oldHTML = document.getElementById('para').innerHTML;
var newHTML = "<span style='color:lightgreen'>" + oldHTML + "</span>";
document.getElementById('para').innerHTML = newHTML;
}
</script>
<p id='para'>Hola <b id='nombre'>gente</b> </p>
<input type='button' onclick='cambiarColor()' value='Change Text'/>
但后来我想使用一些用户输入来改变颜色。我的问题是它不起作用。它显示(以用户选择的颜色)“未定义”一词。我用过控制台,我知道“mensaje”变量没有定义?这是为什么?
<script type="text/javascript">
// ejemplo de innerHTML con User Input
function cambiarColorUser(){
mensaje=document.getElementById('clase').value;
nuevoColor=document.getElementById('nuevoColor').value;
mensajeCambiado="<span style='color:"+ nuevoColor +";'>"+ mensaje +"</span>";
document.getElementById('clase').innerHTML=mensajeCambiado;
}
</script>
<p id='clase'><h1>Mensaje que cambia de color</h1> </p>
<input type="text" id="nuevoColor">
<input type='button' onclick='cambiarColorUser()' value='Cambia el Color!'/>
更新
阅读您的回复后,我更新了代码,但仍然无法正常工作(http://jsfiddle.net/vjze5/):
<script type="text/javascript">
// ejemplo de innerHTML con User Input
function cambiarColorUser(){
var mensaje=document.getElementById('clase').innerHTML;
var nuevoColor=document.getElementById('nuevoColor').value;
var mensajeCambiado="<span style='color:"+ nuevoColor +";'>"+ mensaje +"</span>";
document.getElementById('clase').innerHTML=mensajeCambiado;
}
</script>
<p id='clase'><h1>Mensaje que cambia de color</h1> </p>
<input type="text" id="nuevoColor">
<input type='button' onclick='cambiarColorUser()' value='Cambia el Color!'/>
注意:如果我在文本输入中输入“red”,然后在 Chrome 中打开控制台,然后输入“cambiarColorUser()”,它会回复“undefined”。