2010-02-02 6 views
5

मैं इस बारे में थोड़ा उलझन में हूं कि यह कैसे करें ...jQuery - तालिका में अंतिम पंक्ति से इनपुट फ़ील्ड मान प्राप्त करें?

मेरे पास एक सारणी है जिसमें पंक्तियों की एक श्रृंखला है, और प्रत्येक सेल के भीतर, कुछ फॉर्म तत्व हैं। ,

<table id="table1"> 
<tr><td><input type="hidden" name="code" value="XFT" /></td></tr> 
<tr><td><input type="hidden" name="code" value="ETY" /></td></tr> 
<tr><td><input type="hidden" name="code" value="DHQ" /></td></tr> 
</table> 

और: मैं केवल अंतिम पंक्ति से "कोड" इनपुट क्षेत्र से मूल्य प्राप्त करने की कोशिश कर रहा हूँ, और वाक्य रचना के साथ समस्या हो रहा हूँ ...

सरलीकृत तालिका इस तरह दिखता है यहाँ jQuery वह काम नहीं करता ...

if($('#cont')) { 
      $("#cont').live('click', function(event) { 
       var tr = $('#wr-viewcarttable tr:last'); 
       var itemcode = $(tr > 'input[name="code"]').val(); 
       window.location = "/search?p="+itemcode; 
      }); 
     } 

उत्तर

11

इस प्रयास करें है:

$('table#table1 tr:last input[name=code]').val(); 

या, अपने कोड के लिए समायोजित:

$('#cont').live('click', function(event) { 
    var tr = $('#wr-viewcarttable tr:last'); 
    var itemcode = tr.find('input[name=code]').val(); 
    window.location = "/search?p="+itemcode; 
}); 

अपने कोड में दो त्रुटियाँ हैं, तो आप $("#cont') भाग में बेमेल उद्धरण है और अपने इनपुट खोज गलत है। क्या आप अब है:

$(tr > 'input[name="code"]').val(); 

> के रूप में बाहर उद्धरण है, यह एक स्ट्रिंग नहीं है, लेकिन एक तुलना ऑपरेटर, जो अब 'input[name="code"]' को tr तुलना करती है। तुलना ऑपरेटरों हमेशा बूलियन मान (सही या गलत) लौटने के लिए, ताकि आप प्रभावी रूप से इस कार्य कर रहे हैं:

$(true).val(); 

कौन सा ज्यादा मतलब नहीं है। यदि आपके पास jQuery ऑब्जेक्ट है, तो आप उस ऑब्जेक्ट के किसी भी बच्चे को खोजने के लिए find विधि का उपयोग कर सकते हैं, या वैकल्पिक रूप से $() फ़ंक्शन के संदर्भ के रूप में तत्व को पास कर सकते हैं। तो इन दो काम करते हैं और बराबर हैं जाएगा:

tr.find('input[name=code]').val(); 
$('input[name=code]', tr).val(); 

वास्तव में, अपने मामले में अपने आप चर को tr को बचाने के लिए कोई कारण नहीं है के रूप में आप के रूप में ऊपर दिखाए गए, सिर्फ एक घोषणा में मूल्य मिल सकता है।

+0

इसके लिए धन्यवाद। और स्पष्टीकरण के लिए! – n00b0101