jQuery: डेटा विशेषताओं का चयन करें जो खाली नहीं हैं?


95

मैं उन सभी तत्वों का चयन करने की कोशिश कर रहा हूं जिनमें एक data-go-toविशेषता है जो खाली नहीं है।

मैंने कोशिश की है, $('[data-go-to!=""]')लेकिन अगर मैं ऐसा करूं तो यह पेज पर हर एक तत्व को चुनने के लिए काफी अजीब लगता है।

जवाबों:


76

प्रयत्न

$(':not([data-go-to=""])')

अपडेट करें:

किसी को भी भटकने की ओर नहीं ले जाने के लिए, यह उत्तर पुराने संस्करणों में काम करेगा, लेकिन भविष्य में प्रूफ नहीं है। चूँकि @gmo और @ siva के उत्तर दोनों ही बाद के संस्करणों के साथ काम करते प्रतीत होते हैं, जिन्हें मैं उनके उत्तरों के लिए स्थगित (और आपको प्रोत्साहित करने के लिए) करता हूं .... और निश्चित रूप से आपके लिए एक शानदार दिन है।


धन्यवाद, यह बहुत अच्छा काम किया! मैं केवल छवि तत्वों का चयन करना चाहता था, इसलिए मैंने $ जोड़ा (': नहीं (img [data-go-to == ""] ")
msanjay

2
क्या यह उन सभी तत्वों का चयन नहीं करता है जिनके पास खाली 'डेटा-टू-गो' विशेषता नहीं है? जब पूछने वाला उस विशेषता वाले सभी तत्वों को चाहता है जो रिक्त नहीं हैं? (जैसा कि शिव चरण का जवाब है)
कृष्ण

वास्तव में किसी भी दोहरे उद्धरण चिह्नों की आवश्यकता नहीं है ... जैसा कि $('element:not([attribute=])'); // gets all of <element attribute="">या में$(':not([attribute=])'); // gets all of <* attribute="">
एंथनी हत्ज़ोपोलोस

2
यह मेरे लिए हर तत्व को शामिल करता है, जिसमें वह डेटा-विशेषता है जिसकी मैं तलाश कर रहा हूं
डेविल्स एडवोकेट

लगता है सफारी में काम नहीं $('[data-go-to!=""]:[data-go-to]')करता है, लेकिन करता है।
दान

184

बस आगे के संदर्भ के रूप में, और एक अप-टू-डेट (may'14) (aug'15) (sep'16) (apr'17) (mar'18) (mar'19) ( may'20 ) ...
उत्तर जो काम करता है:

खाली तार:

यदि मौजूद होना चाहिए और उसका कोई मूल्य हो सकता है (या कोई भी नहीं)attr

    jQuery("[href]");

गुम विशेषताएँ:

यदि मौजूद हो सकता है और यदि मौजूद है, तो कुछ मूल्य होना चाहिएattr

    jQuery("[href!='']");

अथवा दोनों:

तो चाहिए मौजूद और होना आवश्यक है कुछ मूल्य ... attr

    jQuery("[href!=''][href]");

पुनश्च : अधिक संयोजन संभव हैं ...


उदाहरण के लिए jsFiddle में इस परीक्षा की जाँच करें :


या यहाँ इस कोड स्निपेट के साथ एसओ में ।

* स्निपेट jQuery v2.1.1 चला रहा है


6
यह बात है। इस उपयोगकर्ता को यहीं पर अपडेट करें। अन्य पुराने उत्तर मेरे लिए काम नहीं कर रहे हैं। मैंने तीसरा उदाहरण इस्तेमाल किया।
वलमास

दूसरा @ वलमास-एयूएस
एडम वेट

संपादित करें: एसओ कोड स्निपेट जोड़ा गया, ताकि आप इसे यहीं पर परख सकें।
गमो

यह वह है जो काम कर रहा है। $(':not([data-go-to=""])')अब काम नहीं कर रहा है
Matthieu Charbonnier

1
उत्तर तक रखने के लिए धन्यवाद
एंथनी सी

19
$('[data-go-to!=""]:[data-go-to]').each(function() {
    // Do Your Stuff
});​

6
यह एक खाली तार और लापता विशेषताओं के लिए काम करता है, एकदम सही
adamJLev

4
May'14 के रूप में काम नहीं करता है, Unrecognized Expressionत्रुटि देता है।
कोडिंग_डॉट

7

Has डेटा-एनाउन्नाम ’है और इसका मान रिक्त नहीं है:

$('[data-attributename]:not([data-attributename=""])')

खाली या नहीं: 'डेटा-एनेजेनेम' है

$('[data-attributename]')

जेएस फिडेल उदाहरण


1
यह एकमात्र उत्तर है जो अभी भी मेरे लिए जून 2015 में काम करता है
एलेक्सियोवे

5

मैं एक साधारण चयनकर्ता के बारे में निश्चित नहीं हूं, लेकिन आप इसका उपयोग कर सकते हैं filter():

$('[data-go-to]').filter(
    function(){
        return ($(this).attr('data-go-to').length > 0);
    });

जेएस फिडेल डेमो

संदर्भ:




2
$('[data-go-to]').filter(function() {
    return $(this).data('go-to')!="";
});

का उपयोग करते हुए :not, .not(), :emptyआदि केवल जांच करेगा कि तत्व में ही खाली है, नहीं डेटा विशेषता है। उसके लिए आपको डेटा एट्रिब्यूट वैल्यू के आधार पर फ़िल्टर करना होगा।

बेला


1

यह मेरे लिए काम करता है

$('[attributename]').filter('[attributename!=""]')

हालांकि ये दो पुनरावृत्तियों हैं।
जेन्स

0

इसे इस्तेमाल करे :

$('[data-go-to:not(:empty)]')

1
नही जाओ। "Syntax error, unrecognized expression: [data-go-to:not(:empty)]"
शिफफोर्ड

api.jquery.com/empty-selector api.jquery.com/not-selector इसके अनुसार, मान लिया जाए कि काम करने के लिए, दुखद, कि एक स्वच्छ समाधान होगा!
पास्कल बाउटिन

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.