इस

2011-08-22 21 views
5

के अंदर अवधि खोजने के लिए jquery के खोज फ़ंक्शन का उपयोग करके ली के अंदर एक अवधि के प्रदर्शन विशेषता को बदलने की कोशिश कर रहा हूं .... यह काम नहीं कर रहा है और मुझे लगता है कि मुझे पता है क्यों .... क्योंकि अवधि अंदर नहीं है इनपुट तत्व सही है? लेकिन im यकीन है कि यहइस

heres मेरी कोड ठीक करने का तरीका नहीं:

$('form ul li input').click(function() { 
    if ($(this).is(':checked')) 
     $(this).find('span').attr('display', 'block'); 
    else 
     $(this).find('span').attr('display', 'none'); 
}); 

मैं सभी मैं क्या करने की जरूरत पता है कि यह कर, तो यह LI और नहीं इनपुट खोज है .... लेकिन यकीन नहीं im यह कैसे करना है।

यहाँ एक ली के लिए HTML:

<li> 

    <input type="checkbox" name="attack_strategies[]" id="strategy_4" value="4" /> 
    <label for="strategy_4">meditation</label> 

    <span> 

     <select name="attack_strategies_e[]" id="strategy_e_4"> 
     <option value="">How effective was it?</option> 
     <option value="0">0</option> 
     <option value="1">1</option><option value="2">2</option> 
     <option value="3">3</option><option value="4">4</option> 
     <option value="5">5</option><option value="6">6</option> 
     <option value="7">7</option><option value="8">8</option> 
     <option value="9">9</option><option value="10">10</option>   
     </select> 

    </span> 

</li> 

उत्तर

9

आप ठीक कह रहे हैं। वास्तव में, एक input element [HTML4 spec] किसी भी बच्चे नहीं कर सकते हैं:

<!ELEMENT INPUT - O EMPTY    -- form control --> 

आप closest[docs] उपयोग कर सकते हैं पूर्वज li खोजने के लिए और फिर खोज span वहाँ से:

$(this).closest('li').find('span').css('display', 'block'); 

वहाँ span लगाने के लिए अन्य तरीकों से हो सकता है लेकिन यह आपकी एचटीएमएल संरचना पर निर्भर करता है, जिसे हम नहीं जानते हैं।

+0

मैंने सोचा कि यह काम करेगा लेकिन यह नहीं था ... मैंने अपने ओपी में एचटीएमएल जोड़ा अगर आप देख सकें तो मैं इसकी बहुत सराहना करता हूं। आप देख सकते हैं कि मैं INPUT की जांच होने पर बस चयन करना चाहता हूं। – scarhand

+1

मुझे कभी नहीं मिला। इसकी वजह से मैं सीएसएस के बजाय एटीटीआर का उपयोग कर रहा था। – scarhand

+0

@scarhand: ठीक है, इसे भी ठीक किया गया। –

0

कोड आप पोस्ट में, इस इनपुट क्षेत्र का उल्लेख है, और .find() प्रलेखन पढ़ता है:

विवरण: मिलान किया तत्वों के वर्तमान सेट, द्वारा फ़िल्टर में प्रत्येक तत्व की जाओ वंशज एक चयनकर्ता, jQuery वस्तु, या तत्व।

तो आप इनपुट फ़ील्ड में ढूंढने का उपयोग नहीं कर सकते क्योंकि यह span बच्चा नहीं हो सकता है।

आप Felix Kling का सुझाव दे सकते हैं।