表:
<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库创建的,我无法弄清楚如何操作。
答案 0 :(得分:3)
尝试:
$('span[id^="flight"]').closest('tr').after('<tr>This is a new tr</tr>');
这将在包含以flight
开头的ID的跨度的行之后添加新行。
答案 1 :(得分:2)
标准jQuery看起来像:
var search = 99,
new_row = '<tr><td></td></tr>';
$('#flight_' + search).closest('tr').after(new_row);
答案 2 :(得分:2)
你可以这样做:
$("#flight_" + flightNumber).closest('tr')
.after('<tr><td><New Cell!</td><td></td></tr>');
这会获取flgiht数字,将其转换为flight_xx
ID,找到该元素,然后前往<tr>
(通过.closest()
,并插入新行{{ 3}}那一个。
如果您可以选择在行而不是<span>
添加ID,请执行此操作,然后移除.after()
来电。
答案 3 :(得分:1)
您应该能够使用自定义装饰器执行此操作。使用startRow()
,您可以在选择任何行之前添加内容。类似的东西:
public String startRow() {
...
Item rowItem = (Item) getCurrentRowObject();
if (rowItem has some value) {
returnString = "<tr><td>some text here</td></tr>";
}
...
return returnString;
希望这有帮助
答案 4 :(得分:1)
您可以使用自定义decorater执行此操作并覆盖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;
}