Если бы у вас была однородная структура внутри
<div class="wrapper">
(т.е. каждый
input
был бы обернут в свой
div
), можно было бы использовать такую выборку:
console.log(document.querySelectorAll('.wrapper input').length); // 4
console.log(document.querySelectorAll('.wrapper div:not(.hide) input').length); // 3
Если вы не можете изменить структуру на однородную, и вам просто нужно посчитать количество не скрытых элементов, можно сделать так:
console.log( document.querySelectorAll('.wrapper input').length - document.querySelectorAll('.wrapper .hide input').length); // 3
Если вы не можете изменить структуру на однородную, и вам нужно получить все нескрытые элементы (при условии, что только скрытые элементы обернуты в
div
), можно воспользоваться такой выборкой:
console.log(document.querySelectorAll('.wrapper > input').length); // 3
Очень многое зависит от того, что именно нужно сделать, и какие у вас ограничения на изменение структуры html.