1

我试图弄清楚如何检查特定表单中的所有输入元素是否具有某个类,如果可能的话,不单独检查每个元素。

我知道如何检查单个元素是否有一个类..

if( $('#element').hasClass('class') ){ Do This...}

我也知道如何用一行 JQuery 来影响表单的所有输入。

$('#form > *').on('click', function(){ Do This...});

我似乎无法将两者融合在一起......就像......

if( $('#form > *').hasClass('class') ){ Do This...}
4

3 回答 3

7

只需检查表单中的输入数是否等于所需类的表单中的输入数:

var allHaveClass = $('#form input').length == $('#form input.yourclass').length;

在这里,有一个小提琴:http: //jsfiddle.net/adrianonantua/2GnaW/

更新

另一种方法:检查表单中是否有任何不包含 yourclass 的输入。

var allHaveClass = $('#form input:not(.yourclass)').length == 0;
于 2012-10-31T21:21:02.643 回答
2

您可以执行以下操作:

$("#form input").not('.theclass')

这将返回任何不具有该类的输入元素。

另一种方法是:

$("#form input:not(.theclass)")

后者似乎具有更好的性能。

于 2012-10-31T21:21:10.310 回答
2

最简单的方法是一个简单的if声明:

var form = $(formSelector);

if (form.find('input').length == form.find('input.className').length) {
    // all inputs have that class
}
于 2012-10-31T21:21:49.370 回答