2012-10-26 5 views
7

संभव डुप्लिकेट:
Combining jQuery :not and :nth-child selectorsjQuery - 2 छद्म चयनकर्ता?

संभव है?

यहाँ मेरी कोड है:

$("ul#filterlist li:nth-child(3n)").css("marginTop", "0"); 

अगर मैं सूची है कि लागू करना चाहते थे, लेकिन केवल इस सूची में उन वस्तुओं दिखाई करने के लिए (कुछ छिपा मिलता है, मैं उन्हें गिना नहीं करना चाहती), कैसे क्या यह हासिल किया जाएगा? मैं कुछ ऐसा सोच रहा था:

$("ul#filterlist li:nth-child(3n)").not(":hidden").css("marginTop", "0"); 

लेकिन यह काम नहीं करेगा। न तो मैं कुछ भी कोशिश करूंगा: दृश्य

कोई विचार? धन्यवाद।

+0

में उदाहरण देख यह का डुप्लिकेट नहीं है: नहीं, के रूप में: समाधान के अलावा नहीं था नहीं, यह अभी जिस तरह मैंने सोचा कि यह तार्किक काम करेगा किया गया था, जिसमें यह नहीं, धन्यवाद – Phill

उत्तर

10

जिस विधि को आप ढूंढ रहे हैं वह filter() है। यह दिए गए चयनकर्ता के आधार पर jQuery ऑब्जेक्ट्स की एक सूची को फ़िल्टर करेगा। चूंकि वहां कोई ":hidden" चयनकर्ता नहीं मिला था, इसलिए मैंने :visible के विपरीत उपयोग किया था।

$("ul#filterlist li:nth-child(3n)").filter(":visible").css("marginTop", "0"); 

आशा है कि इससे मदद मिलती है!

1

चेनिंग का प्रयास करें: चयनकर्ताओं

$("ul#filterlist li:nth-child(3n):not(:hidden)").css("marginTop", "0"); 

इस जवाब में दिखाया गया है जैसे:

jQuery - multiple :not selector

+0

यदि यह ': नहीं: छुपा हुआ 'है, तो यह' दृश्यमान 'होना चाहिए। – alex

+0

दृश्यता भी हो सकती है: पतन, हालांकि गैर-तालिका तत्वों पर उपयोग किए जाने पर छुपा कार्य करता है – WebChemist

+0

एक और नमूना $ ("# divdetails span: nth-child (2): इसमें ('s')") –

2

आप छिपा तत्वों आप निम्नलिखित कोड का उपयोग कर कोशिश कर सकते हैं गिनती करने के लिए नहीं करना चाहते हैं।

$("ul#filterlist li:visible").filter(function(index){ 
    return (index+1)%3 == 0?true:false; 
}).css("marginTop", "0"); 

jsfiddle here