我试图弄清楚如何检查特定表单中的所有输入元素是否具有某个类,如果可能的话,不单独检查每个元素。
我知道如何检查单个元素是否有类..
if( $('#element').hasClass('class') ){ Do This...}
我也知道如何使用单行JQuery来影响表单的所有输入。
$('#form > *').on('click', function(){ Do This...});
我似乎无法将两者混合......就像......
if( $('#form > *').hasClass('class') ){ Do This...}
答案 0 :(得分:7)
只需检查表单中的输入计数是否等于所需类别的输入计数:
var allHaveClass = $('#form input').length == $('#form input.yourclass').length;
在这里,有一个小提琴:http://jsfiddle.net/adrianonantua/2GnaW/
<强>更新强>
另一种方法:检查表格中是否存在任何没有您的类的输入。
var allHaveClass = $('#form input:not(.yourclass)').length == 0;
答案 1 :(得分:2)
您可以执行以下操作:
$("#form input").not('.theclass')
这将返回任何没有该类的输入元素。
另一种方法是:
$("#form input:not(.theclass)")
后者似乎有更好的表现。
答案 2 :(得分:2)
最简单的方法是使用简单的if
语句:
var form = $(formSelector);
if (form.find('input').length == form.find('input.className').length) {
// all inputs have that class
}