如何将变量添加到伪类的jquery选择器?

是否可以将变量添加到伪元素的jquery字符串选择器? 我已经尝试过以下两个代码,但没有一个可以使用,你能帮我吗?

$(function () { $("option").click(function(){ var filt1 = $(this).attr('id'); $("#filter2 option[class!=filt1]").hide(); $("#filter2 option[id*=filt1]").show(); }); }); 

  $(function () { $("option").click(function(){ var filt1 = $(this).attr('id'); $('#filter2 option[class!='+ filt1+ ']').hide(); $('#filter2 option[id*='+ filt1+']').show(); }); }); 

跨浏览器不支持事件和隐藏! 根据第一个选择中的值删除和追加

首先存储并删除#filter2中的

更改为使用filter1中的选项值并使用的change事件。

然后当进行更改时…克隆并过滤存储的并将过滤后的那些仅放入#filter2

 var $filter2 = $('#filter2'), // store options for #filter2 $filter2Opts = $filter2.children().detach(); $('#filter1').change(function() { var $newOpts = $filter2Opts.clone().filter('.' + $(this).val()) $filter2.html($newOpts); }) 
    

你的第二次尝试很接近,你只是缺少属性值的引号:

 $(function () { $("option").click(function(){ var filt1 = $(this).attr('id'); $('#filter2 option[class!="'+ filt1+ '"]').hide(); $('#filter2 option[id*="'+ filt1+'"]').show(); }); }); 

但是,如果我理解你正在尝试做什么,你可能想要这样:

 $(function () { $("option").click(function(){ var filt1 = $(this).attr('id'); $('#filter2 option').hide(); $('#filter2 option.'+ filt1).show(); }); }); 

但正如charlietfl所说,通过CSS隐藏选项并不是跨浏览器兼容的,所以你可能想按照他们说的方式去做。