大家好,当一个选项按钮选择了另一个选项时,我要做的是。它工作,但当选择另一个选项按钮时,我想显示文本,但它不工作,这是我的代码:
<html>
<head>
<script type="text/javascript" src="http://code.jquery.com/jquery-1.4.4.js"></script>
<script type="text/javascript">
$(document).ready(function() {
$(".select-box").change(function() {
if ($(".select-box option[value='3']").attr('selected')) {
document.getElementById("demo").innerHTML="<select class='select-box'><option value='4'>a</option><option value='5'>b</option></select>";
if ($(".select-box option[value='5']").attr('selected')) {
document.write("Hello")
}
}
});
});
</script>
</head>
<body>
<select class="select-box">
<option>Select an option</option>
<option value="1">no alert</option>
<option value="2">no alert too</option>
<option value="3">alert</option>
</select>
<p></br>
<div id="demo"></div>
</body>
</html>
- 使用当前版本的jQuery
- 是的,您不应该嵌套
if
-语句 option
元素永远不会有"selected
"属性。当您选择某个内容时,不会更改任何属性,只更改DOM对象的属性。请改用.prop()
- 根本不要检查
option
元素的可选性(除非您有多选),只需使用select
元素的value
属性(.val()
与jQuery) - 不要使用
document.write
。一旦加载(完全解析)文档,就会用新文档覆盖当前文档。您的代码是在DOMready上执行的,甚至在用户事件上也是如此 - 一旦第一个条件匹配,您就需要更改您的公式。这是可以的,但您不能期望新表单已经选择了一些值——您需要再次挂接
change
事件