/ / Existuje spôsob, ako dotazovať kolekciu, ktorá bola predtým vyplnená z výrazu jquery? - jquery

Existuje spôsob, ako môžete vyhľadávať kolekciu, ktorá bola predtým vyplnená z výrazu jquery? - jquery

Namiesto toho, aby sme vykonali niekoľko jquery výrazov viackrát, I "m zaplní premennú počas $(document).ready:

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

Tu ukladám zoznam začiarkavacích políčok, ktoré končia reťazcom „chk“ v tabuľke s ID „tbl"v políčkach premenných. \ t

Neskôr chcem vypnúť tlačidlo, ak nie je začiarknuté žiadne políčko.

Pokúšam sa urobiť niečo ako:

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

ale nič sa nedeje. Nápady?

odpovede:

0 pre odpoveď č. 1

checkbox vo vašom kóde je objekt jQuery. Snažíte sa ho použiť ako reťazec.

Môžete si vziať zoznam začiarkavacích políčok, ktoré súuž v objekte jQuery a potom ho filtrujte na výsledok, ktorý je práve kontrolovaný a potom skontrolujte jeho dĺžku takto:

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

Alebo môžete spustiť úplne nový volič od nuly, kde sa skombinujete ":checked" s predchádzajúcim voličom.


1 pre odpoveď č. 2

Ak už máte kolekciu jQuery, môžete ju filtrovať. Môžete použiť $.fn.filter metóda podmienene vylúčiť / zahrnúť položky do novej kolekcie alebo použiť niečo podobné $.fn.find prejsť v novom výbere, aby zodpovedali všetkým deťom.

Čítajte ďalej online na http://api.jquery.com/category/traversing/.