Номер 1 будет немного быстрее, так как фильтр применяется к объекту, содержащему уже выбранные элементы. Номер 2 в основном выполняет один и тот же запрос селектора дважды, во второй раз, включая :checked
выражение селектора.
На самом деле, разница в скорости между ними не будет демонстрацией:)
Я был бы склонен использовать
var checkboxes = $("#main").find("div.c1 > input:checkbox.c2");
var totalCheckboxes = checkboxes.length;
var checkedCheckboxes = checkboxes.filter(":checked").length;
Предоставление контекста, по сути, приведет к решению вышеизложенного, но было показано, что использование .find()
оказалось более быстрым ( Я выкопаю ссылку, я думаю, это было в блоге Джона Ресига ).