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' id,然后在属于 'flight_xx' id 的行之后创建一个新行。

这可能使用jQuery吗?

该表是使用 DisplayTag 库创建的,我不知道该怎么做。

4

5 回答 5

3

尝试:

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

这将在包含以 开头的 id 的 span 的行之后添加一个新行flight

于 2010-08-27T10:47:30.433 回答
2

标准 jQuery 看起来像:

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

$('#flight_' + search).closest('tr').after(new_row);
于 2010-08-27T10:48:01.967 回答
2

你可以这样做:

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

这将获取 flgiht 编号,将其转换为flight_xxID,找到该元素,上升到<tr>它所在的位置(通过.closest(),并插入该行的新行.after()

如果您可以选择在行上添加 ID 而不是<span>,请执行此操作并删除.closest()调用。

于 2010-08-27T10:49:50.667 回答
1

您应该可以使用自定义装饰器来做到这一点。使用startRow()您可以在您选择的任何行之前添加一些内容。就像是:

    public String startRow() {
    ...

    Item rowItem = (Item) getCurrentRowObject();

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

    ...

    return returnString;

希望这可以帮助

于 2011-10-13T15:10:13.977 回答
1

您可以使用自定义装饰器并覆盖 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;
                         }
于 2012-01-06T07:35:16.433 回答