我有一个选择选项,有两种颜色,红色和蓝色。当我选择红色时,它应该将背景颜色设置为红色,如果我选择蓝色,则应将背景颜色设置为蓝色。问题在于,无论我选择什么,它都会将背景颜色设置为红色。
<select id ="selectColor">
<option >none</option>
<option value="red">Red</option>
<option value="blue">Blue</option>
</select>
$(document).ready(function () {
$("#selectColor").change(function () {
if ($(this).text != "red") {
document.body.style.backgroundColor = "blue";
}
if ($(this).text !="blue")
{
document.body.style.backgroundColor = "red";
}
});
});
答案 0 :(得分:2)
实际上,它首先将背景设置为蓝色,然后是红色,因为$(this).text
不等于。这可能是undefined
。
您正在寻找.val()
方法,以提取value
属性。
$(document).on('ready', function () {
$("#selectColor").on('change', function () {
var val = $(this).val();
document.body.style.backgroundColor = val;
});
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<select id="selectColor">
<option value="">none</option>
<option value="red">Red</option>
<option value="blue">Blue</option>
</select>
答案 1 :(得分:2)
有最短最简单的例子:
City.search "san fr", fields: [{name: :text_start}]
&#13;
答案 2 :(得分:1)
你的javascript应该是这样的:
$(document).ready(function () {
$("#selectColor").change(function () {
if ($(this).val() != "red") {
document.body.style.backgroundColor = "blue";
}
else if ($(this).val() !="blue")
{
document.body.style.backgroundColor = "red";
}
});
});
使用val()可以获得选项的值。如果您使用的是“文本”,则会获得所有选项的所有文本,以及if if
答案 3 :(得分:1)
jQuery对象上的text
属性始终是一个函数。它永远不会是你要测试的叮咬,所以你的所有条件都会匹配。颜色将变为蓝色,然后立即变为红色。
您想使用val()
而不是text
。
答案 4 :(得分:1)
答案 5 :(得分:1)
以下是使用jQuery的示例: -
$(document).ready(function () {
$("#selectColor").change(function () {
if ($(this).val() === "red") {
$('body').css('background-color', 'blue');
} else {
$('body').css('background-color', 'red');
}
});
以JS小提琴为例 - EXAMPLE });