jquery选择选项默认值隐藏并重新显示

jquery选择选项默认值隐藏并重新显示,jquery,Jquery,当第一次单击“选择”查看所有选项1、2、3时,我在选项列表中隐藏了默认选项,但在进行选择并再次查看选项后,它需要以某种方式重新出现。只有通过页面刷新,用户才能将选择框视为包含“浴室”类别,否则没有意义的数字1、2、3出现 也就是说,当前“浴室”不会在选择后再次出现,然后再次单击选择框。如果用户改变主意,这就是问题所在。最好的方法是什么 我无法更改html-这只需要使用Jquery即可。请帮忙 <select name="searchForm__bathrooms" id="field-se

当第一次单击“选择”查看所有选项1、2、3时,我在选项列表中隐藏了默认选项,但在进行选择并再次查看选项后,它需要以某种方式重新出现。只有通过页面刷新,用户才能将选择框视为包含“浴室”类别,否则没有意义的数字1、2、3出现

也就是说,当前“浴室”不会在选择后再次出现,然后再次单击选择框。如果用户改变主意,这就是问题所在。最好的方法是什么

我无法更改html-这只需要使用Jquery即可。请帮忙

<select name="searchForm__bathrooms" id="field-searchForm__bathrooms" class="field-    dropdown">
    <option value=""> Bathrooms </option>
    <option value="1"> 1 </option>
    <option value="3"> 3 </option>
    <option value="2"> 2 </option>
</select>

$('select option:first-child').hide();
Javascript

$(function() {
    $("#field-searchForm__bathrooms").change(function() {
        var selectEle = $(this);
        var doAppend = true;  
        $.each(selectEle.children(), function(index, child) {
            if (child.value == "0") {
                doAppend = false;
            }
        });
        if (doAppend) {
            selectEle.append('<option name="bathroom" value="0">Bathrooms</option>');
        }
    });
});
HTML


最好的方法是什么使用a在select元素旁边显示浴室,而不是在option元素中显示浴室-如有必要,使用jQuery将其插入。另外,请注意,有些浏览器不允许您隐藏选项元素——我认为在IE和其他浏览器中,您实际上必须从DOM中删除该选项?根据浏览器规格,您不能隐藏选项标记。曾经有一个跨浏览器的黑客,但它没有日志工作。感谢earlonrails,这是非常接近,但我不能改变html[浴室也是一个选项],仍然需要浴室作为默认选项。。也就是说,“浴室”在任何情况下都应该只出现一次。[下拉查看/未查看,选择选项1,2,3,然后下拉查看..]-nnnnn,谢谢是的,我理解标签应该具有此功能,但是由于selectbox外没有空间-因此我认为这不是最简单/好的选项..对于选择选项,当您尝试跨浏览器使用显示属性时会出现问题,这就是我建议附加节点的原因。下面是一篇关于选项标签问题的帖子。根据我的经验,你不能隐藏选择。也许这样的折衷方案对你有用。
$(function() {
    $("#field-searchForm__bathrooms").change(function() {
        var selectEle = $(this);
        var doAppend = true;  
        $.each(selectEle.children(), function(index, child) {
            if (child.value == "0") {
                doAppend = false;
            }
        });
        if (doAppend) {
            selectEle.append('<option name="bathroom" value="0">Bathrooms</option>');
        }
    });
});
<body>
    <select name="searchForm__bathrooms" id="field-searchForm__bathrooms" class="field-dropdown">
        <option value="1"> 1 </option>
        <option value="2"> 2 </option>
        <option value="3"> 3 </option>
    </select>
</body>​