2012-05-21 8 views
73

मैं सोच रहा हूं, अगर jQuery में एंड्रॉइड का उपयोग करके नामांकित विशेषताओं के तत्वों का चयन करना संभव है।jQuery AND और OR ऑपरेटरों का उपयोग करके विशेषता द्वारा चयन

उदाहरण:

<div myid="1" myc="blue">1</div> 
<div myid="2" myc="blue">2</div> 
<div myid="3" myc="blue">3</div> 
<div myid="4">4</div> 

मैं सभी तत्वों का चयन करना चाहते हैं जहां myc="blue" लेकिन केवल करने के लिए myid सेट 1 या 3.

तो मैंने कोशिश की के साथ उन:

a=$('[myc="blue"] [myid="1"] [myid="3"]'); 

लेकिन यह काम नहीं करता है, यहां पर:

a=$('[myc="blue"] && [myid="1"] || [myid="3"]'); 

क्या यह विशेष फ़िल्टर फ़ंक्शंस लिखने के बिना संभव है?

+6

एनबी: आप 'myc' और' myid' की तरह अपने स्वयं के गुण को बनाने नहीं किया जाना चाहिए। यदि आप एचटीएमएल 5 का उपयोग कर रहे हैं तो उन्हें 'डेटा-': 'डेटा-माईसी' और 'डेटा-मायिड' के साथ उपसर्ग करें। – RoToRa

+0

वाह, 8 मिनट में 8 जवाब .. ऐसा लगता है जैसे मैंने नोब सवाल पूछा। माफ़ कीजिये! : -/ –

+1

@TheBndr नहीं, यह एक दिलचस्प सवाल है और अधिकांश उत्तरों के अलग-अलग दृष्टिकोण हैं और आपके प्रश्न को 3 अपवॉट्स + 2 एफएवी मिला है .. निश्चित रूप से एक अच्छा सवाल है। –

उत्तर

132

और आपरेशन

a=$('[myc="blue"][myid="1"][myid="3"]'); 

या आपरेशन, अल्पविराम

a=$('[myc="blue"],[myid="1"],[myid="3"]'); 

रूप @Vega टिप्पणी की का उपयोग करें:

a=$('[myc="blue"][myid="1"],[myc="blue"][myid="3"]'); 
+1

मुझे लगता है कि, वह 'myc == blue && (id == 1 || id == 3) ' –

+1

है यदि मैं' a = $ (' [myc = "blue"] [myid = "1"] का उपयोग करता हूं , [myid = "3"] ');' इसका मतलब है '([myc = "blue"] और [myid = "1"]) या [myid = "3"] 'या' ([myc = "blue "]) और ([myid =" 1 "] या [myid =" 3 "]) 'मैं दूसरे की तलाश में हूं // संपादित करें: उस अद्यतन के लिए धन्यवाद! :-) –

11

कैसे नीचे की तरह एक फिल्टर, लिखने के बारे में

$('[myc="blue"]').filter(function() { 
    return (this.id == '1' || this.id == '3'); 
}); 

संपादित करें: @Jack धन्यवाद .. पूरी तरह से नहीं देख पाए ..

$('[myc="blue"]').filter(function() { 
    var myId = $(this).attr('myid'); 
    return (myId == '1' || myId == '3'); 
}); 

DEMO

+0

यह 'myid' है, नहीं 'id' :) –

+0

@ जैक पूरी तरह से उसको याद किया .. धन्यवाद! –

-1

JQuery CSS चयनकर्ताओं का उपयोग करता तत्वों का चयन करने के, तो आप सिर्फ एक से अधिक नियम का उपयोग करने की आवश्यकता है उन्हें अल्पविराम से अलग करते हुए,

a=$('[myc="blue"], [myid="1"], [myid="3"]'); 

संपादित करें:

क्षमा करें, आप नीले चाहता था और 1 या 3. कैसे के बारे में:

a=$('[myc="blue"][myid="1"], [myid="3"]'); 

एक साथ दो विशेषता चयनकर्ताओं लाना आप देता है और, एक अल्पविराम का उपयोग कर आप देता है या।

+1

मुझे लगता है, वह चाहता है कि वह 'myc == blue && (id == 1 || id == 3) ' –

+0

धन्यवाद वेगा, अपडेट किया गया। – philnash

+0

आपको दूसरे उदाहरण में '[myc = "blue"] 'selector को दोहराना होगा। – RoToRa

-1

आपके द्वारा बताए गए लॉजिकल ऑपरेशंस का उपयोग करके तत्वों का सही चयन करने के लिए, आपको AND ऑपरेशन के लिए jQuery.filter() की आवश्यकता है, न कि "विशेष फ़िल्टर फ़ंक्शंस"। OR ऑपरेशन के लिए आपको jQuery.add() की भी आवश्यकता है।

var elements = $('[myc="blue"][myid="1"], [myid="3"]'); 
5

और ऑपरेटर में:

var elements = $('[myc="blue"]').filter('[myid="1"').add('[myid="3"'); 

वैकल्पिक रूप से, यह एक एकल चयनकर्ता, जहां एक साथ चयनकर्ताओं जाम एक AND रूप में कार्य करता है और एक OR के रूप में अल्पविराम कृत्यों के साथ अलग करने में आशुलिपि का उपयोग कर पूरा करने के लिए संभव है एक चयनकर्ता सिर्फ एक खाली स्ट्रिंग है, और ऑपरेटर अल्पविराम है।

वहाँ लेकिन कोई समूह या प्राथमिकता है, ताकि आप शर्तों में से एक को दोहराना:

a=$('[myc=blue][myid="1"],[myc=blue][myid="3"]'); 
+0

क्या आपको उन उद्धरणों की आवश्यकता है? मेरा मतलब केवल स्थिरता के लिए है .. शायद बस मुझे। >< –

+1

@ वेगा: आपको 'ब्लू' जैसे सरल तारों के लिए उद्धरण की आवश्यकता नहीं है, लेकिन मुझे संख्यात्मक मानों के बारे में निश्चित नहीं था, इसलिए मैंने उन्हें रखा। – Guffa

1

अपने विशेष मामले में यह होगा

a=$('[myc="blue"][myid="1"],[myc="blue"][myid="3"]'); 
14

सरल उपयोग .filter()[docs] (और) का उपयोग करते हुए multiple selector[docs] (या):

$('[myc="blue"]').filter('[myid="1"],[myid="2"]'); 

सामान्य तौर पर, चेनिंग चयनकर्ताओं, ली के a.foo.bar[attr=value] किसी प्रकार का और चयनकर्ता है।

jQuery में समर्थित चयनकर्ताओं के बारे में extensive documentation है, यह पढ़ने योग्य है।

+0

क्या आप जानते हैं, अगर यह gabe से जवाब से तेज़ है? –

+0

मुझे नहीं पता, शायद, शायद नहीं। –

5

पहली शर्त होती है कि सभी परिस्थितियों में, फिर से फिल्टर विशेष परिस्थितियों पाते हैं:

$('[myc="blue"]') 
    .filter('[myid="1"],[myid="3"]'); 
संबंधित मुद्दे