用于隐藏下拉列表选项的Javascript解决方案

时间:2013-08-18 15:38:25

标签: javascript jquery css

编辑: 谢谢大家,但似乎没有任何工作。我将此代码插入到我知道正在使用的文件中,并且包含通常格式化的其他javascript块,但这仍然无效。它适用于小提琴,但不适用于我的代码。我想这对于我试图修改的平台和扩展来说太具体了(这是由第三方扩展修改的Magento结账步骤的一部分)。我将开始考虑用手动生成的列表替换列表。再次感谢。


我正在尝试隐藏一个以dinamically生成的下拉列表中的选项。 CSS解决方案并不适用于所有浏览器,即使我在这里找到了几个类似的问题,也没有一个提供适用于我的解决方案。

这是我的列表呈现的内容:

<select id="timeselect" name="adj[delivery_time][]" title="El plazo de la entrega" class="adjtimeselect select" type="time" ><option id="option-10" value="10" >10</option>
<option id="option-11" value="11" >11</option>
<option id="option-12" value="12" >12</option>
<option id="option-13" value="13" >13</option>
<option id="option-14" value="14" >14</option>
<option id="option-15" value="15" >15</option>
<option id="option-16" value="16" >16</option>
<option id="option-17" value="17" >17</option>
<option id="option-18" value="18" >18</option>
<option id="option-19" value="19" >19</option>
<option id="option-20" value="20" >20</option>
</select> 

我需要隐藏值为“12”的选项。 我正在使用这个JS:

$("#timeselect option[value='12']").remove();

因为我是JS的新手,所以我会非常感激。

感谢。

4 个答案:

答案 0 :(得分:4)

使用JQuery的hide()功能:jsFiddle

您可以使用show()将其取回

答案 1 :(得分:2)

我尝试了很多不同的方法,但这个解决方案似乎合理且跨浏览器兼容,我在我的代码中使用过。没有插件需要使用jquery对象的简单注册函数

解决方案:

(function ($) {


$('#showOne').click(function () {
    $('#ddlNumbers').showHideDropdownOptions('3', true);
});

$('#hideOne').click(function () {
    $('#ddlNumbers').showHideDropdownOptions('3', false);
});

 $.fn.showHideDropdownOptions = function(value, canShowOption) { 

         $(this).find('option[value="' + value + '"]').map(function () {
            return $(this).parent('span').length === 0 ? this : null;
        }).wrap('<span>').hide();

        if (canShowOption) 
            $(this).find('option[value="' + value + '"]').unwrap().show();
        else 
            $(this).find('option[value="' + value + '"]').hide();

}



})(jQuery);

以下是完整的实施http://jsfiddle.net/8uxD7/3/

答案 2 :(得分:1)

Jquery按值删除

$("#timeselect option[value=11]").remove();

按文本删除Jquery

$("#timeselect option:contains(11)").remove();

Jquery使用css隐藏选择框选项及其值

   $("#timeselect option[value='11']").hide();

   $("#timeselect option[value='11']").css('display','none');

答案 3 :(得分:1)

您可以使用jQuery remove()函数。如果要从DOM中永久删除它,或者如果要删除并重新插入它,请使用detach()

$("#timeselect option[value='12']").remove();

或分离

var value = $("#timeselect option[value='12']").detach();

使用

重新插入
$("#timeselect").append(value);

http://jsbin.com/iHIrAQE/5/edit

参见示例

另一种方法是您可以禁用该值,以便用户可以看到但无法选择

$("#timeselect option[value='12']").attr('disabled','disabled');