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 table
dernier 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 avecnext()
il va ajouter à l'intérieur de latr
après latd class="icon"
.
Vous devez vous connecter pour publier un commentaire.
Vous pouvez utiliser le .après la fonction de() en jQuery pour ajouter du contenu d'un autre élément.
Ainsi, au lieu de
vous utilisez
ou vous pouvez aussi les utiliser
qui est essentiellement équivalent.
Voir http://api.jquery.com/after/ pour plus de détails.
$('#site_id_'+id).after().append('<tr id="delete"></tr>');
Toujours pas de travail. Une autre idée?essayer
.prepend()
au lieu de.append()
les intérêts tr id puis onclick="xyz()"
quelque chose comme ceci: