如何在点击时隐藏/显示选项?

时间:2011-08-22 03:49:13

标签: jquery select show-hide

选择有时太大,所以我想过滤它。根据值,我将有3个复选框关闭/开启某些选项。与jsfiddle

中的示例一样
  • 如果选项的值包含d,则隐藏它 - 在我的示例中,我们需要隐藏2个选项
  • 如果取消选中该复选框,则显示值

可以在jQuery中完成。知道怎么样?

如果它在firefox中运行,那对我来说已经足够了(Chrome也很好但不是必需的,对于safari来说也一样)

注意:

将会有 3个复选框来过滤包含wdh的值。所以隐藏/展示必须适用于所有人。


jsfiddle基于@ShankarSangoli回答的最终代码。

4 个答案:

答案 0 :(得分:4)

这适用于您的示例(jsFiddle):

$('input:checkbox').click(function() {
    if (this.checked) {
         $('select option[value$=d]').hide(); 
    } else {
         $('select option[value$=d]').show();  
    }
});

选择器option[value$=d]找到option s,其值以“d”结尾。

此外,我会为您的selectinput元素提供一些唯一ID,以便您可以将它们指向您想要使用jQuery控制的元素 - 这可能会影响您网页上的其他元素,因为它是

答案 1 :(得分:4)

所有浏览器都不支持在选择列表中隐藏optionjQuery甚至无法做任何事情来支持跨浏览器。但我们可以使用disabled属性禁用该选项。

以下是复选框点击时禁用选项的工作演示。

http://jsfiddle.net/ggWJu/8/

这是在复选框点击的选择框中添加/删除选项的工作演示。它将选项添加到从中删除的相同位置。

http://jsfiddle.net/ggWJu/9/

如果选项值包含复选框值,这里是添加/删除所有选项的小提琴。

http://jsfiddle.net/ggWJu/10/

答案 2 :(得分:2)

this example您要找的是什么?请参阅change事件和contains选择器文档。

答案 3 :(得分:2)

你需要的是你的js部分中的数组。然后从该数组中,你可以通过迭代数组来动态构建一个select元素,你也可以动态地操作它。