2012-05-27 9 views
53

मैं document.querySelectorAll का उपयोग उन सभी चेकबॉक्स के लिए करने की कोशिश कर रहा हूं जिनमें value विशेषता सेट है।क्वेरी सिलेक्टर केवल उन तत्वों के लिए कैसे उपयोग करें जिनके पास एक विशिष्ट विशेषता सेट है?

पृष्ठ पर अन्य चेकबॉक्स हैं जिनके पास value सेट नहीं है, और प्रत्येक चेकबॉक्स के लिए मान अलग है। हालांकि आईडी और नाम अद्वितीय नहीं हैं।

उदाहरण: <input type="checkbox" id="c2" name="c2" value="DE039230952"/>

कैसे मैं सिर्फ उन चेक बॉक्स है कि मूल्यों की स्थापना की है का चयन करते हैं?

+1

इसमें रिक्त स्थान शामिल हैं? जैसे 'मान = "" ' – Joseph

+0

अन्य चेकबॉक्सों का कोई मूल्य नहीं है, इसलिए उसे इसमें शामिल नहीं करना होगा। – Soryn

उत्तर

116

आप querySelectorAll() इस तरह उपयोग कर सकते हैं:

var test = document.querySelectorAll('input[value][type="checkbox"]:not([value=""])'); 

यह करने के लिए अनुवाद:

विशेषता "मूल्य" के साथ सभी आदानों हो और विशेषता "मान" खाली नहीं है।

In this demo, यह एक गैर-खाली मूल्य वाले चेकबॉक्स को अक्षम करता है।

+0

हालांकि केवल चेकबॉक्स प्रकार इनपुट का चयन कैसे करें? ऐसे कई अन्य इनपुट टैग हैं जिनमें मूल्य विशेषताएँ हैं, लेकिन मुझे केवल चेकबॉक्स चाहिए। – Soryn

+1

@ सोरेन 'जोड़ें [टाइप = "चेकबॉक्स"] '। मेरा जवाब अपडेट किया गया। – Joseph

+0

आह भयानक ... धन्यवाद! – Soryn

5

अतिरिक्त सुझाव:

एकाधिक "वंचितों", इनपुट है कि छिपा हुआ नहीं और नहीं अक्षम:

:not([type="hidden"]):not([disabled]) 

इसके अलावा, आप जानते हैं कि आप ऐसा कर सकते हैं:

node.parentNode.querySelectorAll('div'); 

यह jQuery के समतुल्य है:

$(node).parent().find('div'); 

जो प्रभावी रूप से सभी नोडों को "नोड" में और नीचे संक्षेप में, हॉट डैन में मिल जाएगा!

-6

document.querySelectorAll() इनपुट रिटर्न के लिए केवल डिफ़ॉल्ट रूप से चेकड इनपुट।

सम्मान;)

संबंधित मुद्दे

 संबंधित मुद्दे