Jquery

2010-01-18 3 views
6

का उपयोग कर खाली टेक्स्टबॉक्स मैं 'निकालें' क्लिक करते समय 'tr' को छिपाने में सक्षम हूं। निम्नलिखित कोड के साथ।Jquery

$("a#minus").bind("click", function(e){ 
    $(this).closest('tr').hide(); 
}); 

लेकिन मैं यह भी 2 पाठ बॉक्स की सामग्री को साफ करना चाहते (पाठ बॉक्स के आईडी गतिशील [frm_Expense_expensesVO_ __strAmount और frm_Expense_expensesVO_ __memo] यहाँ हैं '*' 1 से अनंत को जाता है)। कृपया मदद करे। धन्यवाद

<table> 
<tr> 
    <td> 
     Amount 
    </td> 
    <td> 
     Memo 
    </td> 
    <td>  
     &nbsp; 
    </td> 
</tr> 
<tr> 
    <td> 
     <input type="text" name="expensesVO[0].strAmount" value="2.30" id="frm_Expense_expensesVO_0__strAmount"/> 
    </td> 
    <td> 
     <input type="text" name="expensesVO[0].memo" value="Five" id="frm_Expense_expensesVO_0__memo"/> 
    </td> 
    <td> 
     <a id="minus" href="#">Remove</a> 
    </td> 
</tr> 
<tr> 
    <td> 
     <input type="text" name="expensesVO[1].strAmount" value="3.45" id="frm_Expense_expensesVO_1__strAmount"/> 
    </td> 
    <td> 
     <input type="text" name="expensesVO[1].memo" value="Six" id="frm_Expense_expensesVO_1__memo"/> 
    </td> 
    <td> 
     <a id="minus" href="#">Remove</a> 
    </td> 
</tr> 
<tr> 
    <td> 
     <input type="text" name="expensesVO[2].strAmount" value="" id="frm_Expense_expensesVO_2__strAmount"/> 
    </td> 
    <td> 
     <input type="text" name="expensesVO[2].memo" value="" id="frm_Expense_expensesVO_2__memo"/> 
    </td> 
    <td> 
     <input type="submit" id="frm_Expense_ExpenseAdd_plus" name="action:ExpenseAdd_plus" value="+"/> 
    </td> 
</tr> 
<tr> 
    <td>  
     <label id="frm_Expense_transactionVO_amount">5.75</label> 
    </td> 
    <td align="right"> 
     <input type="submit" id="frm_Expense_Cancel" name="action:ExpenseAdd_cancel" value="Cancel"/> 
    </td> 
    <td align="left"> 
     <input type="submit" id="frm_Expense_Save" name="action:ExpenseAdd_save" value="Save"/> 
    </td> 
</tr> 

उत्तर

16
$("a#minus").bind("click", function(e){ 
    $(this).closest('tr').hide().find('input:text').val(''); 
}); 

नोट: भी क्यों चयनकर्ता a#minus के रूप में वांछित काम नहीं करेगा पर darmen's answer देखते हैं।

+0

लगभग समान, लेकिन आपने 24 सेकंड तक मुझे हराया, इसलिए मैं स्वीकार करता हूं और अपना जवाब हटा दूंगा। :) – Alconja

+0

क्यों न केवल '$ ('एक # शून्य')। क्लिक करें (फ़ंक्शन() {....'? क्या 'बाइंड() ' – carillonator

+1

का उपयोग करने का कोई फायदा है, बस एक सहायक विधि है, इसलिए यह है बाइंड कॉल के समान, लेकिन मैं कुछ पात्रों को बचाने के बारे में बहुत परेशान नहीं करूंगा। वहां बहुत कुछ हासिल नहीं किया जा सकता है। – Anurag

0

class विशेषता का उपयोग करें, और className का उपयोग करके दो टेक्स्टबॉक्स का चयन करें। फिर आप उस संग्रह का मान शून्य-स्ट्रिंग पर सेट कर सकते हैं।

7

आपको एंकरों को कक्षा निर्दिष्ट करना चाहिए। एक आईडी पर बाध्यकारी नवीनतम के लिए एक घटना उठाएगा।

उदाहरण:

$("a.remove").live('click', function(){ 
    $(this).closest('tr').hide().find("input").val(""); 
}); 
+0

धन्यवाद आप बहुत सारे लोग :) –

+0

+1। मैंने यह नहीं देखा। मैं अपनी पोस्ट में एक नोट जोड़ूंगा। –

0

jQuery कोर या एक प्लगइन में निकटतम परिभाषित है?

वैसे भी, आप उस tr के भीतर सभी टेक्स्ट बॉक्स प्राप्त कर सकते हैं और फिर रेगेक्स मैच कर सकते हैं। यह केवल उन टेक्स्ट बॉक्स को खाली करना चाहिए जो आपके प्रश्न में उल्लिखित आईडी से मेल खाते हैं।

$("a#minus").bind("click", function(e){ 
    var row = $(this).closest('tr'); 
    $("input:text", row).each(function(item) { 
     var id = item.id; 
     if(/frm_Expense_expensesVO_[0-9]+__strAmount/.test(id)) { 
      $(item).val(''); 
     } 
     else if(/frm_Expense_expensesVO_[0-9]+__memo/.test(id)) { 
      $(item).val(''); 
     } 
    }); 
    row.hide(); 
}); 
+0

'निकटतम()' jQuery कोर 1.3 में है - http://docs.jquery.com/Traversing/closest –