एक ही jquery अभिव्यक्ति को कई बार निष्पादित करने के बजाय, मैं एक चर के दौरान पॉपुलेट कर रहा हूं $(document).ready
:
var checkboxes = $("#<%=tbl.ClientID %> input[id*="chk"]");
यहां, मैं चेकबॉक्स की सूची को संग्रहीत कर रहा हूं जो "आईडी" के साथ तालिका के भीतर समाप्त होता है।tbl
"चर चेकबॉक्स में।
बाद में, मैं एक बटन को निष्क्रिय करना चाहता हूं अगर कोई भी चेकबॉक्स की जांच नहीं की जाती है।
मैं ऐसा कुछ करने का प्रयास कर रहा हूं:
btn.disabled = $(checkboxes:checked").length == 0;
लेकिन कुछ नहीं हो रहा है विचार?
उत्तर:
जवाब के लिए 0 № 1checkbox
आपके कोड में एक jQuery वस्तु है। आप इसे एक स्ट्रिंग की तरह उपयोग करने का प्रयास कर रहे हैं।
आप उस चेकबॉक्स की सूची ले सकते हैं जो कि हैंपहले से ही jQuery ऑब्जेक्ट में और फिर इसे एक परिणाम के लिए फ़िल्टर करें जो कि अभी हाल ही में चेक किए गए हैं और फिर उस की लंबाई जांचें जैसे:
btn.disabled = checkboxes.filter(":checked").length === 0;
या, आप खरोंच से एक पूरी तरह से नया चयनकर्ता चला सकते हैं जहां आप गठबंधन करते हैं ":checked"
अपने पिछले चयनकर्ता के साथ।
उत्तर № 2 के लिए 1
यदि आपके पास पहले से ही एक jQuery संग्रह है, तो आप इसे फ़िल्टर कर सकते हैं। आप उपयोग कर सकते हैं $.fn.filter
तरीका नए संग्रह में आइटम को सशर्त रूप से बहिष्कृत / शामिल करना, या जैसे कुछ का उपयोग करना $.fn.find
सभी बच्चों के खिलाफ मैच के लिए एक नए चयन में पास होने के लिए।
आगे पढ़ें ऑनलाइन http://api.jquery.com/category/traversing/.