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ď č. 1checkbox
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/.