2009-06-20 9 views
5

जब कोई उपयोगकर्ता निम्नलिखित "li" के अंत में img पर क्लिक करता है, तो मैं छिपी हुई इनपुट का मान पिछले दो तत्वों को प्राप्त करना चाहता हूं। कोई लाभ नहीं हुआ करने के लिएJquery के साथ आसन्न छिपे इनपुट के मूल्य का चयन कैसे करें?

$(document).ready(function(){ 
    $("#theLists img").click(function(){ 
     var contentId = $(this).closest("input[name='id']").val();   
    }); 

:

<ul id="theLists"> 
    <li> 
    <input class="checkbox" type="checkbox" name="row"/> 
    <input class="contentId" type="hidden" value="64" name="id"/> 
    <div id="64" class="editable">Peanuts for me</div> 
    <img src="/img/delete.gif" alt="delete"/> 
    </li> 
</ul> 

मैं इस कोशिश की। कोई विचार? मुझे पंक्ति आईडी के साथ एक var सेट करने की आवश्यकता है, जो इस मामले में "64" है।

उत्तर

10

निकटतम (...) निकटतम भाई नजदीक नजदीकी माता-पिता नोड प्राप्त करता है।

वास्तव में, आप जो चाहते हैं उसे करने के कई तरीके हैं।

इन का प्रयास करें:

var contentId = $(this).siblings("input[name='id']").val(); 

var contentId = $(this).parent().children("input[name='id']").val(); 

var contentId = $(this).prev().prev().val(); 
+0

धन्यवाद, भाई विधि का उपयोग करना। यह भी जानना अच्छा है कि यौगिक पिछला() एस का उपयोग किया जा सकता है। – kevtrout

+0

जेफ को कोई अपराध नहीं है, लेकिन जब यह आपके प्रत्यक्ष प्रश्न का उत्तर देता है तो यह आपको कवर नहीं करता है अगर आपको कभी भी आईएमजी टैग को स्थानांतरित करने की आवश्यकता होती है, उदाहरण के लिए इसे शैली के लिए एक अवधि या div के भीतर। – tags2k

+0

बेशक यह केवल प्रत्यक्ष प्रश्न का उत्तर देता है। यदि किसी भी सामान्य "इस इनपुट को कैसे सेट करें" या जैसा कोई उल्लेख किया गया था, तो मेरा जवाब अलग होता। हालांकि, यदि प्रश्न एक पद्धति को निर्दिष्ट करता है, तो मुझे यह समझना होगा कि क्या आवश्यक है, इसके बारे में कोई सलाह है कि व्हाट्सएंड को कैसे संभाला जाए। उम्मीद है कि मैं आक्रामक नहीं हूं, सिर्फ स्पष्टीकरण देना चाहता हूं। –

0

अच्छा और सस्ता:

var contentId = $(this).parents('li:first').find('.contentId').val(); 
2

See complete solution here.

आप युक्त <li> करने के लिए id विशेषता स्थानांतरित कर सकते हैं, छिपी हुई फ़ील्ड को हटाने और बस का उपयोग करें:

var contentId = $(this).parent().get(0).id; 

यहां का लाभ यह है कि भविष्य में आप अन्य क्रियाएं जैसे "संपादन" इत्यादि जोड़ सकते हैं, बिना किसी भाई की स्थिति के बारे में चिंता करने की आवश्यकता के।

संबंधित मुद्दे