10

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


我试图在动态生成的下拉列表中隐藏一个选项。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

4 回答 4

5

使用hide()JQuery的功能:jsFiddle

你可以用show()它来取回它

于 2013-08-18T15:47:35.977 回答
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/

于 2014-04-09T12:28:12.487 回答
2

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');
于 2013-08-18T15:45:01.797 回答
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');
于 2013-08-18T16:04:57.667 回答