2010-10-29 9 views
33

यह एक आसान होना चाहिए। मेरे पास एक वैरिएबल है जिसे मैंने पहले ही $ listItems नामक घोषित कर दिया है। घोषणा इस तरह दिखता है:jQuery: चयनकर्ता को देखते हुए, केवल इसके दृश्य तत्व खोजें

var $listItems = $ul.children('li'); // $ul is just a selected unordered list 

मेरी कोड में बाद में, मैं केवल जो कि वर्तमान में दिखाई दे रहे हैं प्राप्त करना चाहते हैं। मैं इसके बारे में कैसे जाउंगा? कुछ ऐसा:

$listItems.parent().children(':visible')? 

धन्यवाद।

उत्तर

70

आप केवल उन है कि एक चयनकर्ता (या एक समारोह) से मेल, इस तरह के तत्वों का एक सेट को सीमित करने के .filter() उपयोग कर सकते हैं: :visible चयनकर्ता के साथ

$listItems.filter(':visible') 
+0

हाँ यही मेरा मतलब निक था;) – fehays

+0

यह विशेष रूप से सहायक है यदि आपको एकाधिक मानों पर फ़िल्टर करने की आवश्यकता है। जैसे चयनित और दृश्यमान। एक अच्छे समाधान के लिए +1! –

+0

FWIW, jQuery एक तत्व को "दृश्य में उपभोग करते हैं" के रूप में दिखाई देता है। एक तत्व में इसकी 'दृश्यता' सेट को 'छुपा' पर सेट किया जा सकता है, इसलिए यह वास्तव में पृष्ठ पर नहीं देखा जाता है, लेकिन 'दृश्यमान' अभी भी तत्व को वापस कर देगा। – jacroe

4

आप इसे किया है। यह jQuery संग्रह तरीकों $(), filter(), children(), find() में से किसी में इस्तेमाल किया जा सकता आदि

नोट: वहाँ कुछ उस पृष्ठ पर है दिखाई और उसके visibility संपत्ति सेट है के बीच एक अंतर है।