2010-10-04 7 views
17

मुझे लगता है कि मुझे अपने कुछ jQuery कार्यों में बहुत से .children() का उपयोग करना है।jQuery: लेकिन सभी बच्चों के बारे में क्या?

alt text

यहाँ मेरी HTML है:

$('.goal-small-container').hover(function() { 
    $(this).children('.goal-content').children('.goal-row').children('.goal-actions').css({visibility: "visible"}); 
}, function() { 
    $(this).children('.goal-content').children('.goal-row').children('.goal-actions').css({visibility: "hidden"}); 
}); 

वहाँ एक बेहतर तरीका है: यहाँ

<div class="goal-small-container"> 
    <div class="goal-content"> 
    <div class="goal-row"> 
     <span class="goal-actions"> 

और मेरे jQuery है? बच्चों के लिए मुझे बताओ।

+15

भगवान के लिए, पर एक शर्ट डाला! बच्चे मौजूद हैं! : ओ) – user113716

+0

ओह, मेरी! मैं शरमा रहा हूँ*। –

+0

वाह, स्टैक ओवरफ़्लो के लिए व्यस्त रात। 11 मिनट में 235 विचार। –

उत्तर

27
.find('.goal-content .goal-row .goal-action').whatever() 

या अधिक बस:

.find('.goal-action').whatever() 
+0

यह वही नहीं है जो मैं उम्मीद कर रहा था। –

+13

@rockinthesixstring - पार्टी pooper –

+0

lol किसी भी संबंधित छवियों के साथ जवाब नफरत है ... मैं नीचे वोट करने के लिए बहुत मोहक हूँ ..;) – Reigel

14

क्या आपने .find() के बारे में सुना है?

$('.goal-small-container').hover(function() { 
    $(this).find('.goal-actions').css({visibility: "visible"}); 
}, function() { 
    $(this).find('.goal-actions').css({visibility: "hidden"}); 
}); 
+2

मैंने नहीं किया था! यह वहीं है जिसे मैं ढूंढ रहा था। यह भी सराहना करता हूं कि मुझे क्या लगता है कि एक संपादन था। –

+0

^_^मैं जवाब देने वाला पहला व्यक्ति था, दुख की बात है, उन्हें उच्च वोट मिले। ;) – Reigel

+0

मैंने सराहना की कि आप पहले जवाब देने वाले थे, लेकिन विरासत कक्षाओं और एकल वर्ग की श्रृंखला के साथ उपयोग किए जाने वाले '.find()' को किसी भी अपरिचित के लिए भी उपयोगी था। –

9

$(this).children('.goal-content').children('.goal-row').children('.goal-actions').css({visibility: "visible"}); 

के बजाय आप उपयोग कर सकते हैं:

$(this).find('> .goal-content > .goal-row > .goal-actions').css({visibility: "visible"}); 

वास्तव में एक ही अर्थ है। यदि उस पर संदिग्ध होने का कोई मौका नहीं है, हालांकि, (.goal-actions केवल मार्कअप की उस संरचना में दिखाई देगा) तो आप केवल find('.goal-actions') का उपयोग कर सकते हैं।

0

आप क्यों नहीं बस .show का उपयोग नहीं करते() और .hide() दूसरे <div> पर? और, शुरुआत में उन्हें छुपा या कुछ प्रदर्शित करना है।

+0

'.show()' और '.hide()' का परीक्षण किया गया है और * वांछित प्रभाव नहीं है। –

1

तुम बस का उपयोग कर सकते हैं:

$('.goal-small-container').hover(function() { 
    $(this).find('goal-actions').show(); 
}, function() { 
    $(this).find('goal-actions').hide(); 
}); 
+0

हाहा, आपने मुझे इसे हराया। –

+0

डांग। उस समय मैंने इसे अपने आईफोन पर लिखने के लिए लिया, इसलिए कई अन्य जवाब आए! – mkoistinen

+0

आईफोन पर प्रोग्रामिंग एक दर्दनाक अनुभव है, आईएमओ। – alex