Используя Jquery, замените одну строку в таблице новой - PullRequest
10 голосов
/ 22 сентября 2011

Скажите, у меня есть таблица:

<table id="mytable">
      <tr class="old_row"><td>1</td><td>2</td><td class="edit">Edit</td></tr>
      <tr class="old_row"><td>1</td><td>2</td><td class="edit">Edit</td></tr>
      <tr class="old_row"><td>1</td><td>2</td><td class="edit">Edit</td></tr>
</table>

Я хочу щелкнуть по ячейке <td>Edit</td> и использовать jquery, чтобы заменить всю строку новой строкой с большим содержанием, например,

    $(document).ready(function() {

        $('#mytable .edit').click( function() {

            var tr = $(this).parent();
            var new_row = '<tr class="new_row"><td>3</td><td>4</td><td>Save</td></tr>'
            // code to replace this row with the new_row
        });

    } );

Есть идеи, как это можно сделать?

Ответы [ 4 ]

20 голосов
/ 22 сентября 2011
$(document).ready(function() {

    $('#mytable .edit').click( function() {

        var new_row = '<tr class="new_row"><td>3</td><td>4</td><td>Save</td></tr>'
        $(this).parent().replaceWith(new_row);
    });

} );
4 голосов
/ 22 сентября 2011

Использование jQuery.replaceWith ()

$(document).ready(function() {
  $('#mytable .edit').click( function() {
    var tr = $(this).parent();
    var new_row = '<tr class="new_row"><td>3</td><td>4</td><td>Save</td></tr>';
    tr.replaceWith(new_row);
  });
});
1 голос
/ 22 сентября 2011

jQuery's <a href="http://api.jquery.com/replaceWith/" rel="nofollow">replaceWith()</a>.Пример:

$(document).ready(function() {
    $('#mytable .edit').click( function() {

        var tr = $(this).parent();
        var new_row = '<tr class="new_row"><td>3</td><td>4</td><td>Save</td></tr>'
        tr.replaceWith(new_row); // code to replace this row with the new_row
    });
} );
0 голосов
/ 22 сентября 2011

http://jsfiddle.net/hAvyv/

$('.edit').click(function(){
    $(this).parent().removeClass('old_row').addClass('new_row').html('<td>3</td><td>4</td><td>Save</td>');
});
...