2009-03-02 15 views

Odpowiedz

7
where_you_want_it.before(newRow) 

lub

newRow.insertBefore(where_you_want_it) 

- MarkusQ

+0

Zamiast tego użyj .after()! – Heitor

5

Zamiast tego:

$("#mytable tbody").append(newRow); 

będziesz chciał zrobić coś takiego:

$("#id_of_existing_row").after(newRow); 
9
var newRow = $("<tr>...</tr>"); 
$("#idOfRowToInsertAfter").after(newRow); 

Kluczem jest wiedza id rzędu chcesz wstawić nowy wiersz po, lub przynajmniej wymyślanie jakiejś składni selektora, która pozwoli ci uzyskać ten wiersz.

jQuery docs on after()

+1

+1 za podanie linku do oficjalnej dokumentacji – mbillard

5

Z:

var newTr = $('<tr>[...]</tr>'); 

Można ...

  1. Włóż go po (lub przed jeśli tak zdecydujesz) kolejny wiersz, który znasz identyfikator (lub cokolwiek innego mienia):

    $('#<id of the tr you want to insert the new row after>').after(newTr) 
    
  2. Włóż go po określonym indeksem wiersza (indeksy 0 opartej nie 1-based):

    $($('table#<id> tr')[<index>]).after(newTr) 
    
  3. ... albo, jak wspomniano, absolutny środkowy jest możliwa:

    var existingTrs = $('table#<id> tr') 
    $(existingTrs[parseInt(existingTrs.length/2)]).after(newTr) 
    
0

Jeśli na przykład u umieścić wkładkę obraz na stole to będzie coś takiego:

Twoja ostatnia komórka w tabeli:

<td> <img class=\"insertRow\" src=\"/images/imgInsertRow.jpg\" /> </td> 

Twój kod jQuery:

$('table td img.insertRow').click(function(){ 
    var newRow=$('<tr>........</tr>'); 
    $(this).parent().parent().after(newRow); 
}); 
Powiązane problemy