Javascript 使用选择/选项更改文本颜色
我正在尝试使用“选择”对象更改文本颜色,尝试获取我选择的颜色并将其设置为文本。有两个函数对我的脚本进行了注释,都是我试图完成的,但都失败了。不要问完整的答案/代码,只想知道哪里出了问题。 这是代码,感谢您抽出时间:Javascript 使用选择/选项更改文本颜色,javascript,html,html-select,Javascript,Html,Html Select,我正在尝试使用“选择”对象更改文本颜色,尝试获取我选择的颜色并将其设置为文本。有两个函数对我的脚本进行了注释,都是我试图完成的,但都失败了。不要问完整的答案/代码,只想知道哪里出了问题。 这是代码,感谢您抽出时间: <!DOCTYPE HTML> <html> <head> <title>Hola Mundo Controles</title> <meta name="author" con
<!DOCTYPE HTML>
<html>
<head>
<title>Hola Mundo Controles</title>
<meta name="author" content="José Del Valle Cordero"/>
<meta charset="utf-8" />
</head>
<body>
<div class="main">
<div class="subject" id="subject">
<span id="salute">¡Hello!</span>
</div>
<div id="control">
<div class="color_option">
Color:
<select name="color_list" id="colors" >
<option value="cl_option1" checked="checked">Red </option>
<option value="cl_option2">Blue </option>
<option value="cl_option3">Yellow </option>
<option value="cl_option4">Black </option>
</select>
</div>
</div>
</div>
<script type="text/javascript">
var item,cl;
var colorsMap = {
'cl_option1' : "red",
'cl_option2' : "blue",
'cl_option3' : "yellow",
'cl_option4' : "black"
};
/*colors.onchange=function() {
var salute = document.getElementById("salute");
var item = document.getElementById("colors").selectedIndex;
var color = colorsMap[item];
salute.style.color = color;
};*/
/*$('#colors').change(function(){
var salute = document.getElementById("salute");
item=$(this).val();
cl = colorsMap[item];
salute.style.color = cl;
});*/
</script>
</body>
Hola Mundo控件
“你好!
颜色:
红色
蓝色
黄色的
黑色
var项目,cl;
var colorsMap={
“cl_选项1”:“红色”,
“cl_选项2”:“蓝色”,
“cl_选项3”:“黄色”,
“cl_选项4”:“黑色”
};
/*colors.onchange=function(){
var sallet=document.getElementById(“sallet”);
var item=document.getElementById(“颜色”)。选择索引;
var color=colorsMap[项目];
礼炮。风格。颜色=颜色;
};*/
/*$('#colors')。更改(函数(){
var sallet=document.getElementById(“sallet”);
item=$(this.val();
cl=颜色映射[项目];
Salet.style.color=cl;
});*/
你很接近了。将jQuery包含在
中:
然后在JS中:
<script type="text/javascript">
var colorsMap = {
'cl_option1' : "red",
'cl_option2' : "blue",
'cl_option3' : "yellow",
'cl_option4' : "black"
};
$('#colors').change(function(){
$("#salute").css('color', colorsMap[$(this).val()]);
});
</script>
var colorsMap={
“cl_选项1”:“红色”,
“cl_选项2”:“蓝色”,
“cl_选项3”:“黄色”,
“cl_选项4”:“黑色”
};
$('#colors')。更改(函数(){
$(“#sallet”).css('color',colorsMap[$(this.val());
});
原始脚本太笨拙了&将非jQuery和jQuery函数混为一谈。您已经接近了。将jQuery包含在
中:
然后在JS中:
<script type="text/javascript">
var colorsMap = {
'cl_option1' : "red",
'cl_option2' : "blue",
'cl_option3' : "yellow",
'cl_option4' : "black"
};
$('#colors').change(function(){
$("#salute").css('color', colorsMap[$(this).val()]);
});
</script>
var colorsMap={
“cl_选项1”:“红色”,
“cl_选项2”:“蓝色”,
“cl_选项3”:“黄色”,
“cl_选项4”:“黑色”
};
$('#colors')。更改(函数(){
$(“#sallet”).css('color',colorsMap[$(this.val());
});
原始脚本太笨拙了&将非jQuery和jQuery函数混为一谈。您已经接近了。将jQuery包含在
中:
然后在JS中:
<script type="text/javascript">
var colorsMap = {
'cl_option1' : "red",
'cl_option2' : "blue",
'cl_option3' : "yellow",
'cl_option4' : "black"
};
$('#colors').change(function(){
$("#salute").css('color', colorsMap[$(this).val()]);
});
</script>
var colorsMap={
“cl_选项1”:“红色”,
“cl_选项2”:“蓝色”,
“cl_选项3”:“黄色”,
“cl_选项4”:“黑色”
};
$('#colors')。更改(函数(){
$(“#sallet”).css('color',colorsMap[$(this.val());
});
原始脚本太笨拙了&将非jQuery和jQuery函数混为一谈。您已经接近了。将jQuery包含在
中:
然后在JS中:
<script type="text/javascript">
var colorsMap = {
'cl_option1' : "red",
'cl_option2' : "blue",
'cl_option3' : "yellow",
'cl_option4' : "black"
};
$('#colors').change(function(){
$("#salute").css('color', colorsMap[$(this).val()]);
});
</script>
var colorsMap={
“cl_选项1”:“红色”,
“cl_选项2”:“蓝色”,
“cl_选项3”:“黄色”,
“cl_选项4”:“黑色”
};
$('#colors')。更改(函数(){
$(“#sallet”).css('color',colorsMap[$(this.val());
});
原始脚本太笨拙了&混淆了非jQuery和jQuery功能。我看到的最大问题,除了页面中没有包含jQuery之外,是js正在立即执行。您的两次尝试都使用js与那些html节点所在的DOM进行通信,但是,当您的脚本运行时,dommy还没有准备好与这些节点进行通信
如果你想走那条路,就用一条线。如果你想学习我极力推荐的原生js,你会想在窗口准备好的时候听听。我看到的最大问题是,除了页面中没有包含jQuery之外,你的js正在被立即执行。您的两次尝试都使用js与那些html节点所在的DOM进行通信,但是,当您的脚本运行时,dommy还没有准备好与这些节点进行通信
如果你想走那条路,就用一条线。如果你想学习我极力推荐的原生js,你会想在窗口准备好的时候听听。我看到的最大问题是,除了页面中没有包含jQuery之外,你的js正在被立即执行。您的两次尝试都使用js与那些html节点所在的DOM进行通信,但是,当您的脚本运行时,dommy还没有准备好与这些节点进行通信
如果你想走那条路,就用一条线。如果你想学习我极力推荐的原生js,你会想在窗口准备好的时候听听。我看到的最大问题是,除了页面中没有包含jQuery之外,你的js正在被立即执行。您的两次尝试都使用js与那些html节点所在的DOM进行通信,但是,当您的脚本运行时,dommy还没有准备好与这些节点进行通信
如果你想走那条路,就用一条线。如果您想学习我极力推荐的原生js,您需要在窗口准备就绪时收听。回答您的问题: 第一个代码块(非jQuery)为select元素使用selectedIndex,它返回所选项目的数值(索引值)。您希望字符串值与颜色映射进行检查。更新代码,使其看起来像:
var colors = document.getElementById('colors');
colors.onchange=function(){
var salute = document.getElementById("salute");
var item = document.getElementById("colors").value;
var color = colorsMap[item];
salute.style.color = color;
}
会有用的
更新小提琴:
第二个问题,您只需要jQuery:)来回答您的问题: 第一个代码块(非jQuery)为select元素使用selectedIndex,它返回所选项目的数值(索引值)。您希望字符串值与颜色映射进行检查。更新代码,使其看起来像:
var colors = document.getElementById('colors');
colors.onchange=function(){
var salute = document.getElementById("salute");
var item = document.getElementById("colors").value;
var color = colorsMap[item];
salute.style.color = color;
}
会有用的
更新小提琴:
第二个问题,您只需要jQuery:)来回答您的问题: 第一个代码块(非jQuery)为select元素使用selectedIndex,它返回所选项目的数值(索引值)。你要的是stri