在每行之后添加表格中的新行

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库创建的,我无法弄清楚如何操作。
5个回答

3

尝试:

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

在包含以flight开头的id的span行之后添加一行。

谢谢大家!速度好快!救了我的一天。 - A.W.

2

标准的jQuery代码如下:

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

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

这将在<span>内添加一个<tr> :) - Nick Craver

2
您可以这样做:
$("#flight_" + flightNumber).closest('tr')
                            .after('<tr><td><New Cell!</td><td></td></tr>');

这段代码接收航班号,将其转换为flight_xx ID,查找该元素,通过.closest()方法找到所在的<tr>,然后在它下面插入新行.after()

如果你可以在行上添加ID而不是<span>,那么这样做并且删除.closest()调用。


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
你可以使用自定义装饰器并覆盖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;
                         }

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接