2009-12-18 11 views
29

मेरे पास एक तालिका में बटन के साथ एक कॉलम है जिसे मैं jQuery डेटाटेबल प्लगइन का उपयोग कर रहा हूं। बटन "निकालें" कहते हैं और विचार यह है कि जब आप उस बटन पर क्लिक करते हैं तो यह तालिका में वर्तमान पंक्ति को हटा देता है।jquery datatable प्लगइन के साथ वर्तमान पंक्ति को कैसे हटाएं

जब मैं fnDeleteRow पर कॉल करता हूं तो यह पहली बार काम करता है लेकिन उस पंक्ति के लिए कोई और समय नहीं है, ऐसा लगता है कि यह वास्तव में पंक्ति को सही ढंग से हटा नहीं रहा है।

+0

अधिक जानकारी की आवश्यकता है। क्या आप अपने डेटाटेबल को पॉप्युलेट करने के लिए AJAX का उपयोग करते हैं या आप एक स्थिर HTML तालिका को परिवर्तित कर रहे हैं? इसके अलावा: डेटा अब सटीक क्यों नहीं है? डेटा को क्रमशः tr (और संबंधित आईडी टैग) को स्थानांतरित नहीं करता है? – r00fus

उत्तर

61

की तरह कुछ होगा आज़माएं:

var row = $(this).closest("tr").get(0); 
oTable.fnDeleteRow(oTable.fnGetPosition(row)); 

यह काम नहीं करता है, तो देखें निम्नलिखित example

+1

+1 लेकिन मुझे लगता है कि निकटतम माता-पिता – cobbal

+0

से अधिक उपयुक्त चयनकर्ता होगा, मैंने इसे निकटतम स्विच किया लेकिन उसके बाद यह पूरी तरह से काम करता था। धन्यवाद – leora

+0

आपने क्यों जोड़ा .get (0)? धन्यवाद यह मेरे लिए काम करता है। अंत में – Shahin

0
this page से

: जब उपयोगकर्ता बटन पर क्लिक

$('#example tbody td').click(function() { 
    /* Get the position of the current data from the node */ 
    var aPos = oTable.fnGetPosition(this); 

    //... 
}); 
+0

लेकिन मैं एक टेबल सेल – leora

2

मान लीजिए कि आप एक समारोह संलग्न करते हैं कहा जाता है। समारोह इस

function DeleteRow(event) 
{ 
    //get the row of the cell that is clicked 
    var $row = $(this).parents("tr").eq(0) 
    //if you need the id you can get it as 
    var rowid = $row.attr("id"); 
    //now you can call delete function on this row 
    $row.delete(); 
} 
+4

के अंदर एक बटन पर क्लिक कर रहा हूं, यह काम नहीं कर रहा है .. – leora

1

कैसे इस बारे में:

// Delete Row 
    $('.glyphicon-minus').on("click", function() { 
     configTable.row($(this).closest("tr").get(0)).remove().draw(); 
    }); 
0

यह मेरे लिए काम करता है। दस्तावेज़ तैयार फ़ंक्शन में मैं HTML तालिका के परिवर्तित संस्करण को एक चर में आवंटित करता हूं और जब एक बटन क्लिक किया जाता है तो मैं JQuery के साथ माता-पिता/बच्चों के माध्यम से जाता हूं और लाइब्रेरी के fnDeleteRow() फ़ंक्शन में पैरामीटर के रूप में प्राप्त पंक्ति भेजता हूं।

लाइब्रेरी फ़ंक्शन से टिप्पणियां यहां दी गई हैं। और पुस्तकालय में उल्लेख किया गया एक उदाहरण।

/** 
* Remove a row for the table 
* @param {mixed} target The index of the row from aoData to be deleted, or 
* the TR element you want to delete 
* @param {function|null} [callBack] Callback function 
* @param {bool} [redraw=true] Redraw the table or not 
* @returns {array} The row that was deleted 
* @dtopt API 
* @deprecated Since v1.10 
* 
* @example 
* $(document).ready(function() { 
*  var oTable = $('#example').dataTable(); 
* 
*  // Immediately remove the first row 
*  oTable.fnDeleteRow(0); 
* }); 
*/ 

// And here's how it worked for me. 
var oTable; 
$("document").ready(function() { 
    oTable = $("#myTable").dataTable(); 
}); 

//Remove/Delete button's click. 
$("a[name='deleteColumn']").click(function() { 
    var $row = $(this).parent().parent(); 
    oTable.fnDeleteRow($row); 
}); 
संबंधित मुद्दे