Jquery在调用jquery的行之后添加表行

Rép*_*pás 20 html jquery

我有一个table.

<table id="servers" ...>
...
{section name=i loop=$ownsites}
<tr id="site_id_{$ownsites[i].id}">
...
<td>{$ownsites[i].phone}</td>
<td class="icon"><a id="{$ownsites[i].id}" onClick="return makedeleterow(this.getAttribute('id'));" ...></a></td>
</tr>       
{/section}
<tbody>
</table>
Run Code Online (Sandbox Code Playgroud)

而这个JavaScript.

<script type="text/javascript">
function makedeleterow(id)
    {
        $('#delete').remove();
        $('#servers').append($(document.createElement("tr")).attr({id: "delete"}));
        $('#delete').append($(document.createElement("td")).attr({colspan: "9", id: "deleter"}));
        $('#deleter').text('Biztosan törölni szeretnéd ezt a weblapod?');
        $('#deleter').append($(document.createElement("input")).attr({type: "submit", id: id, onClick: "return truedeleterow(this.getAttribute('id'))"}));
        $('#deleter').append($(document.createElement("input")).attr({type: "hidden", name: "website_del", value: id}));
    }
</script>
Run Code Online (Sandbox Code Playgroud)

它工作正常,它是trtable最后一个之后tr并将信息放入其中,并且删除功能也可以正常工作.

但是我想在调用脚本的(with )添加它.我怎样才能做到这一点?trtd class="icon"

Geo*_*off 36

您可以使用jQuery中的.after()函数将一些内容追加到另一个元素之后.

而不是

$("servers").append( ... );
Run Code Online (Sandbox Code Playgroud)

你会用的

$("#" + id + ).closest( "tr" ).after( ... );
Run Code Online (Sandbox Code Playgroud)

或者你也可以使用

$( ... ).insertAfter( $("#" + id ).closest( "tr" ) );
Run Code Online (Sandbox Code Playgroud)

这基本上是等价的.

有关完整详细信息,请参见http://api.jquery.com/after/.

  • 是的,添加内容作为after方法的参数,不需要append方法.类似于:var newTr = $("<tr id ="delete"> </ tr>"); $('#site_id _'+ id).after(newTr); newTr.append(someChildOfTr).append(someOtherChildOfTr); (3认同)