大家好,我正在尝试做当用户选择一个选项,另一个选项将出现。是的,我这样做了,但当用户选择其他选项时,我想显示文本,但它不起作用,这里是我的代码:
<html>
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.8.1/jquery.min.js"></script></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>发布于 2012-09-10 19:58:18
您需要使用jQuery的on()函数,因为您希望向第二个select添加eventhandler,该select是动态添加到DOM的。
$(document).ready(function() {
$('#main').on('change', '.select-box', function() {
if ($(this).val() == 3) {
$('#demo').html("<select class='select-box'><option value='4'>a</option><option value='5'>b</option></select>");
}
if ($(this).val() == 5) {
alert("Hello");
}
});
});请参阅DEMO。
我已经用div包装了您的元素,并将更改处理程序附加到它。
还要注意的是,我已经用jQuery选择器替换了你的javascript getElementById,并且我简化了你的值检查。
发布于 2012-09-10 19:58:50
它不起作用,因为在脚本运行时,DOM匹配选择器.select-box中只有一个元素。因此,在创建第二个事件侦听器之后,您必须再次绑定事件侦听器。
https://stackoverflow.com/questions/12351069
复制相似问题