Jquery ajouter une table à la ligne après la ligne d'appel à jquery

J'ai un 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>

Et ce 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>

Ça fonctionne très bien, il fait un tr après la tabledernier tr et met l'info, et la fonction de suppression fonctionne aussi très bien.

Mais je voudrais faire cette ajouter APRÈS la tr (avec td class="icon") qui est de l'appel du script. Comment puis-je faire cela?

  • je pense que je ne suis pas de vous suivre. mettre utiliser .next() ou prochaine('tr'), je suppose. PS: et vous n'avez pas à vous sélectionnez à nouveau des éléments de plus d'une fois. vous pouvez remplacer $(document.createElement ("tr")) par $('</tr>').attr('id', 'delete')
  • Oui, @meo. Au lieu de $("#deleter") beaucoup de fois, il suffit de faire var deleter = $("#deleter"); ensuite, utilisez la variable de référence à chaque fois.
  • f je le fais avec $('#site_id_'+id).after().append($(document.createElement("tr")).attr({id: "delete"})); ou avec next() il va ajouter à l'intérieur de la tr après la td class="icon".
InformationsquelleAutor Répás | 2010-04-24