/ / Чи існує спосіб запиту колекції, яка раніше була заповнена з виразу jquery? - jquery

Чи є спосіб запитувати колекцію, яка раніше була заповнена з виразу jquery? - jquery

Замість того, щоб виконувати один і той же вираз jquery кілька разів, я "заповнюю змінну протягом $(document).ready:

var checkboxes = $("#<%=tbl.ClientID %> input[id*="chk"]");

Тут я зберігаю список прапорців, які закінчуються на "chk" всередині таблиці з ідентифікатором "tbl"у змінних полях.

Пізніше я хочу відключити кнопку, якщо не встановлено прапорці.

Я намагаюся зробити щось на кшталт:

btn.disabled = $(checkboxes:checked").length == 0;

але нічого не відбувається. Ідеї?

Відповіді:

0 для відповіді № 1

checkbox у вашому коді - об’єкт jQuery. Ви намагаєтесь використовувати його як рядок.

Ви можете взяти той список прапорців, які євже в об’єкті jQuery, а потім відфільтруйте його до результату, який є саме тими, що зараз перевіряються, а потім перевірте довжину такого, як це:

btn.disabled = checkboxes.filter(":checked").length === 0;

Або ви можете запустити абсолютно новий селектор з нуля, де ви поєднуєте ":checked" з попереднім селектором.


1 для відповіді № 2

Якщо у вас вже є колекція jQuery, ви можете її відфільтрувати. Ви можете використовувати $.fn.filter метод умовно виключати / включати елементи в новій колекції або використовувати щось подібне $.fn.find пройти новий відбір, який відповідає всім дітям проти.

Детальніше читайте в Інтернеті за адресою http://api.jquery.com/category/traversing/.