Добавить новую строку в таблицу после каждой строки - PullRequest
3 голосов
/ 27 августа 2010

Таблица:

<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, и я не могу понять, как это сделать.

Ответы [ 5 ]

3 голосов
/ 27 августа 2010

Попробуйте:

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

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

2 голосов
/ 27 августа 2010

Вы можете сделать это так:

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

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

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

2 голосов
/ 27 августа 2010

Стандартный jQuery будет выглядеть так:

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

$('#flight_' + search).closest('tr').after(new_row);
1 голос
/ 06 января 2012

Это можно сделать с помощью пользовательского декоратора и переопределить метод finishRow. Этот код добавит строку после каждой строки таблицы 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;
                         }
1 голос
/ 13 октября 2011

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

    public String startRow() {
    ...

    Item rowItem = (Item) getCurrentRowObject();

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

    ...

    return returnString;

Надеюсь, это поможет

...