选择有时太大,所以我想过滤它。根据值,我将有3个复选框关闭/开启某些选项。与jsfiddle
中的示例一样d
,则隐藏它 - 在我的示例中,我们需要隐藏2个选项可以在jQuery中完成。知道怎么样?
如果它在firefox中运行,那对我来说已经足够了(Chrome也很好但不是必需的,对于safari来说也一样)
将会有 3个复选框来过滤包含w
,d
和h
的值。所以隐藏/展示必须适用于所有人。
jsfiddle基于@ShankarSangoli回答的最终代码。
答案 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”结尾。
此外,我会为您的select
和input
元素提供一些唯一ID,以便您可以将它们指向您想要使用jQuery控制的元素 - 这可能会影响您网页上的其他元素,因为它是
答案 1 :(得分:4)
所有浏览器都不支持在选择列表中隐藏option
。 jQuery
甚至无法做任何事情来支持跨浏览器。但我们可以使用disabled
属性禁用该选项。
以下是复选框点击时禁用选项的工作演示。
这是在复选框点击的选择框中添加/删除选项的工作演示。它将选项添加到从中删除的相同位置。
如果选项值包含复选框值,这里是添加/删除所有选项的小提琴。
答案 2 :(得分:2)
this example您要找的是什么?请参阅change事件和contains选择器文档。
答案 3 :(得分:2)
你需要的是你的js部分中的数组。然后从该数组中,你可以通过迭代数组来动态构建一个select元素,你也可以动态地操作它。