2011-03-31 119 views
4

我使用一个jQuery插件,它采用以下行我不想选择隐藏的元素,我该怎么做?

var inputSelector = 'input[class]:not(:button|:submit|:reset), textarea[class], select[class]'; 

它选择一些元素。

它也选择隐藏的元素,我怎么能实现,没有给隐藏元素的任何类?

而且它必须在IE中工作。

+1

如果你的意思是类型的'输入=“隐藏”'或一个不是你或许应该澄清可见。 – 2011-03-31 13:09:48

+0

@ Box9:是它的。 – Gaurav 2011-03-31 13:11:15

回答

2

您可以在选择器返回的数组上使用not()方法。

var inputSelector = 'input[class]:not(:button|:submit|:reset), textarea[class], select[class]'; 
var controls = $(inputSelector).not('[type="hidden"]'); 

这将隐藏的元素过滤出由选择器返回的数组。

+0

谢谢。它的工作。但有没有什么办法可以添加任何东西到inpuSelector不添加到控件 – Gaurav 2011-04-01 06:01:20

0
var inputSelector = 'input[class]:not(:button|:submit|:reset|:hidden), textarea[class], select[class]'; 

不会选择隐藏的元素。

+0

我已经试过,但没有工作。 – Gaurav 2011-03-31 12:36:36

1

我花了一分钟,但想通了jsfiddle example

遗憾它没有保存正确

编辑 现在没有阶级

下面是HTML

<input type="text" name="foo" /> 
<input type="hidden" name="hidden" id="bar" value="surprise" /> 
<input type="submit" name="submit" /> 

这里是jQuery

var inputSelector = 'input:not(:button, :submit, :reset,:hidden), textarea, select'; 
$(inputSelector).val('foobar'); 
var bc = $('#bar').val(); 
alert(bc); 

警报应该说“惊喜”,因为ID为“栏”隐藏的元素没有选择

+0

其现在修复 – mcgrailm 2011-03-31 13:04:48

+0

这个我特定于特定的类。我不想使用课堂。我不知道哪些班可以在那里。 – Gaurav 2011-03-31 13:08:09

+0

@Gaurav我已更正 – mcgrailm 2011-03-31 13:11:27

相关问题