/ / क्या एक संग्रह को क्वेरी करने का एक तरीका है जो पहले एक jquery अभिव्यक्ति से आबादी था? - गुड़

क्या एक संग्रह की क्वेरी करने का कोई तरीका है जो पहले jquery अभिव्यक्ति से पॉप्युलेट किया गया था? - jquery

एक ही jquery अभिव्यक्ति को कई बार निष्पादित करने के बजाय, मैं एक चर के दौरान पॉपुलेट कर रहा हूं $(document).ready:

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

यहां, मैं चेकबॉक्स की सूची को संग्रहीत कर रहा हूं जो "आईडी" के साथ तालिका के भीतर समाप्त होता है।tbl"चर चेकबॉक्स में।

बाद में, मैं एक बटन को निष्क्रिय करना चाहता हूं अगर कोई भी चेकबॉक्स की जांच नहीं की जाती है।

मैं ऐसा कुछ करने का प्रयास कर रहा हूं:

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

लेकिन कुछ नहीं हो रहा है विचार?

उत्तर:

जवाब के लिए 0 № 1

checkbox आपके कोड में एक jQuery वस्तु है। आप इसे एक स्ट्रिंग की तरह उपयोग करने का प्रयास कर रहे हैं।

आप उस चेकबॉक्स की सूची ले सकते हैं जो कि हैंपहले से ही jQuery ऑब्जेक्ट में और फिर इसे एक परिणाम के लिए फ़िल्टर करें जो कि अभी हाल ही में चेक किए गए हैं और फिर उस की लंबाई जांचें जैसे:

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

या, आप खरोंच से एक पूरी तरह से नया चयनकर्ता चला सकते हैं जहां आप गठबंधन करते हैं ":checked" अपने पिछले चयनकर्ता के साथ।


उत्तर № 2 के लिए 1

यदि आपके पास पहले से ही एक jQuery संग्रह है, तो आप इसे फ़िल्टर कर सकते हैं। आप उपयोग कर सकते हैं $.fn.filter तरीका नए संग्रह में आइटम को सशर्त रूप से बहिष्कृत / शामिल करना, या जैसे कुछ का उपयोग करना $.fn.find सभी बच्चों के खिलाफ मैच के लिए एक नए चयन में पास होने के लिए।

आगे पढ़ें ऑनलाइन http://api.jquery.com/category/traversing/.