我有以下HTML
<div>
<div id='a'>
<ul>
<li>a</li>
</ul>
</div>
<select>
<option id='Hello'>Hello</option>
</select>
</div>
现在,当我在<select>
中选择任何选项时,<ul>
标记应该隐藏。
我在下面累了,但似乎没有用。
$('#Hello').click(function () {
$(this).closest('#a').find('ul').css('display', 'none');
});
答案 0 :(得分:3)
首先,您需要在selectbox上监听onchange
事件,选项onclick
不可靠。然后,您需要使用$.fn.prev
而不是closest
找到上一个元素:
$('select').change(function () {
$(this).prev('#a').find('ul').hide();
});
答案 1 :(得分:1)
您应该附加事件(更改而不是单击)以选择元素并检查所选选项是否具有必需的id,如果是,则隐藏所需的ul:
$('select').change(function () {
$(this).prev().find('ul').toggle($(this).find('option:selected').attr('id')!="Hello");
}).change();
<强> Working Demo 强>
答案 2 :(得分:0)
您只能使用.hide()
代替.css()
并在select元素上使用change
事件:
$('#Hello').on("change", function () {
$(this).closest('#a').find('ul').hide();
});
答案 3 :(得分:0)
为什么不简单以下?
$("select").change(function() {
$("#a ul").hide();
});
答案 4 :(得分:0)
<div>
<div id='a'>
<ul>
<li data-link="link_a">a</li>
</ul>
</div>
<select>
<option value='link_a'>Hello</option>
</select>
</div>
$('#Hello').click(function () {
$('a[data-link="'+$(this).val()+'"]').hide();
});
答案 5 :(得分:0)
添加任何jquery.min.js
&amp;然后放在脚本下面
<script>
$(document).ready(function(){
$("select").click(function() {
$("#a ul").hide();
});
});
</script>