Я использую find следующим образом:
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;
Спасибо за любую помощь.
Не хватит ли этого:
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/