2016-04-21 69 views
1

我选择所有输入jQuery中,像这样的:jQuery的选择所有输入型除外隐藏

$('input').each(function() { 
... 
}); 

但有可能产生像说选择与输入型隐藏之外的所有输入异常。

我知道我可以选择输入与特定类型的,我需要,但看起来不那么好,我认为

编辑:对不起,发错了例子,我的意思是这样的:

document.forms["product"].getElementsByTagName("input"); 

使用:input:hidden选择.not方法排除隐藏

回答

3

试试这个:你可以利用:not[type="hidden"]

$(function(){ 
 
    $('input:not([type="hidden"])').each(function(){ 
 
    alert($(this).val()); 
 
    }); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<input value="1"> 
 
<input type="radio" value="2"> 
 
<input type="hidden" value="3"> 
 
<input type="checkbox" value="4">

+1

良好的渔获物。重新阅读说**类型**。+1 – BenG

+0

是的,谢谢@BenG! –

0

使用的例外元素。

.not将从集中删除匹配元素

$('input').not(':input:hidden').each(function() { 
... 
}); 
0

有使用各种方法的元件。我宁愿用:

$('input:visible').each(); 

注意::visible不与type="hidden"选择input

或者你可以使用一个长一点的方法:

$('input:not([type="hidden"]').each(); 

或者,

$('input').not('[type="hidden"]').each(); 

API参考:visible-selectornot-selectornot

0

使用此:

$('input:not[type=hidden]').each(function(){ 

}); 
0

由于您的更新

我的意思是这样的:

document.forms["product"].getElementsByTagName("input"); 

与喜异常dden

尝试:

document.forms['product'].querySelectorAll('input:not([type="hidden"])') 
+0

所以我不能使用getElementsByTagName? –

+0

你可以,但那不会*例外*。那么您需要通过结果来检查类型。 – BenG

+0

如果您使用的是jQuery,那么请使用@BhushanKawadkar答案。 – BenG