2010-08-28 15 views
7

मेरे पास एक ही कक्षा के साथ मेरे पृष्ठ पर एकाधिक बटन हैं। जब मैं एक बटन पर क्लिक करता हूं तो मैं निकटतम इनपुट बॉक्स का मान प्राप्त करना चाहता हूं (याद रखें कि एक ही कक्षा के साथ मेरे पृष्ठ पर कई इनपुट बॉक्स और बटन हैं)।निकटतम इनपुट का मूल्य कैसे प्राप्त करें Jquery

मेरे पास है:

$(".deletepostbutton").click(function() { 

      var deleteid = $(this).closest('.deleteid').attr('value'); 

    }); 


<div class="microblogpostactions"> 
    <input type="text" name="deleteid" class="deleteid" value="'.$row['id'].'" /> 
    <a href="Javascript:void[0]" class="deletepostbutton">Delete</a> 
    </div> 

<div class="microblogpostactions"> 
    <input type="text" name="deleteid" class="deleteid" value="'.$row['id'].'" /> 
    <a href="Javascript:void[0]" class="deletepostbutton">Delete</a> 
    </div> 

मैं निकटतम इनपुट के मूल्य कैसे हो और जब कोई उपयोगकर्ता लिंक पर क्लिक करता है यह करने के लिए मेरे चर बराबर कर सकते हैं ????

उत्तर

13

.prev() का उपयोग करें यदि आप सुनिश्चित हैं कि वे एक दूसरे के बगल में हैं। (यह सबसे तेज़ होना चाहिए।)

var deleteid = $(this).prev().attr('value'); 

यह पिछले तत्व को प्राप्त करता है।

तो इस बात की संभावना है कि वहाँ के बीच में एक और तत्व हो जाएगा है, तो आप .siblings() इस्तेमाल कर सकते हैं:

var deleteid = $(this).siblings('.deleteid').attr('value'); 

यह deleteid वर्ग के साथ एक ही <div> अंदर सभी भाई बहन मिल जाएगा।

3
$(this).parent().find('.deleteid').attr('value'); 
0
$(this).parent().find('.deleteid').attr('value'); 

यह हो सकता है (और यह करता है) कार्यक्षमता के साथ कारण समस्याओं। उदाहरण के लिए:

$(this).parent().find('.deleteid').val(10); 
alert($(this).parent().find('.deleteid').val()); 

कभी कभी यह .deleteid के पिछले मूल्य (न कि 10)

रिटर्न
संबंधित मुद्दे