2010-08-27 60 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

嘗試:

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

這將包含具有與flight啓動IDS跨度行後添加新行。

+0

感謝所有後添加行!很快!節省我的一天。 – Guus 2010-08-27 11:24:28

+0

@Guus:歡迎:) – Sarfraz 2010-08-27 13:43:20

2

標準的jQuery會是什麼樣子:

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

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

這會在'':)內追加一個'' :) – 2010-08-27 10:52:13

+0

非常感謝..! – Guus 2010-08-27 11:31:51

2

你可以這樣說:

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

這需要的flgiht數,將其轉換成flight_xx ID,發現該元素,上升到<tr>它在(通過.closest(),並插入新行.after()那一個。

如果你有t他選擇在行上添加ID而不是<span>,這樣做只需刪除.closest()呼叫。

+0

非常感謝..! – Guus 2010-08-27 11:32:29

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; 
         }