2010-08-27 4 views
3

Таблицы:Добавить новую строку в таблице после каждой строки

<table id='t1' style='border:1px solid #000000'> 
    <tr> 
     <td><span id='flight_1'>1</span></td><td>1</td> 
    </tr> 

    <tr> 
     <td><span id='flight_2'>2</span></td><td>2</td> 
    </tr> 

    <tr> 
     <td><span id='flight_99'>99</span></td><td>99</td> 
    </tr> 
</table> 

Я хочу искать для каждого «flight_xx» ид, а затем создать новую строку после строки, принадлежащей к «flight_xx» ид.

Возможно ли это с помощью jQuery?

Таблица создана с использованием библиотеки DisplayTag, и я не могу понять, как это сделать.

ответ

3

Try:

$('span[id^="flight"]').closest('tr').after('<tr>This is a new tr</tr>'); 

Это было бы добавить новую строку после строки, содержащие пролеты, имеющие идентификаторы, которые начинаются с flight.

+0

Спасибо всем ! Так быстро! Экономит мой день. – Guus

+0

@Guus: Welcome :) – Sarfraz

2

Стандартный JQuery будет выглядеть следующим образом:

var search = 99, 
    new_row = '<tr><td></td></tr>'; 

$('#flight_' + search).closest('tr').after(new_row); 
+0

Это добавит '' внутри '' :) –

+0

Спасибо большое ..! – Guus

2

Вы можете сделать это следующим образом:

$("#flight_" + flightNumber).closest('tr') 
          .after('<tr><td><New Cell!</td><td></td></tr>'); 

Это занимает число flgiht, преобразует его в flight_xx ID, находит этот элемент, идет вверх к <tr> он находится в (через .closest() и вставляет новую строку .after(), которая такова.

Если у вас есть t он может добавить идентификатор в строке вместо <span>, сделать это и просто удалить вызов .closest().

+0

Большое спасибо ..! – Guus

1

Вы должны иметь возможность сделать это с помощью специального декоратора. Используя startRow(), вы можете добавить что-то до любой выбранной вами строки. Что-то вроде:

public String startRow() { 
    ... 

    Item rowItem = (Item) getCurrentRowObject(); 

    if (rowItem has some value) { 
     returnString = "<tr><td>some text here</td></tr>"; 
    } 

    ... 

    return returnString; 

Надеется, что это помогает

1

Вы можете сделать это с помощью пользовательского decorater и переопределить finishRow method.this код добавит строку после каждой строки таблицы displayTag

public String finishRow() 
         { 
        String returnString=null; 
        ActorData rowItem = (ActorData) getCurrentRowObject(); 
        if (rowItem.getAnyProperty()!=null) 
         { 
        returnString = "<tr><td>some text here</td><td colspan='2s'>avi</td>" 
        + "</tr>"; 
         } 
        return returnString; 
         } 
Смежные вопросы