0

我正在使用这样的查找:

var controls = divid.find(':input');

这让我得到了 div 中的所有输入控件。

我需要的是获取每种控件的计数,如下所示。

一定有更好的办法。

var answeredRb = false,
    answeredCb = false,
    answeredTb = false,
    answeredSel = false,
    rbCt = divid.find('input[type=radio]').length,
    rbSelected = divid.find('input[type=radio]:checked'),
    rbSelectedCt = rbSelected.length,
    cbCt = divid.find('input[type=checkbox]').length,
    cbSelected = divid.find('input[type=checkbox]:checked'),
    cbSelectedCt = divid.find('input[type=checkbox]:checked').length,
    tbCt = divid.find('input[type=text]').length,
    tbs = divid.find('input[type=text]'),
    selCt = divid.find('select').length;

谢谢你的帮助。

4

1 回答 1

1

这还不够吗:

var results = {};
var rules = ['input[type=radio]', 'input[type=radio]:checked', 'input[type=checkbox]', 'input[type=checkbox]:checked', 'input[type=text]', 'select'];

$(":input").each(function()
{
    for (var i=0; i<rules.length; i++)
    if ($(this).is(rules[i]))
        results[rules[i]] = results[rules[i]]+1 || 1;

});

console.log(results);

JSFiddle:http: //jsfiddle.net/SyJxU/

另一种选择:http: //jsfiddle.net/SyJxU/1/

于 2013-10-24T16:06:04.903 回答