Bonjour , je fait petit test pour ajout tr dans un tableau avec jquery mais je trouve probléme est quand il ajout un tr ( dans cette tr il y'a boutton ajout d'une autre tr qu'il n'est pas fonctionne)

voici code:

<!DOCTYPE>
<html>
<head>
    <title></title>
</head>
<body>
<table id="test" border="1">
    <thead>
        <th>test1</th>
        <th>test2</th>
        <th>test3</th>
        <th>test4</th>
        <th id="plus">+</th>
    </thead>
    <tbody id="tbody">

    </tbody>
</table>

<script src="https://code.jquery.com/jquery-3.1.1.js"></script>
<script>
    $( document ).ready(function() {
        var i=0;
        $("#plus").click(function(){
         i++;
            $("#test #tbody").append('<tr id="test'+i+'"><td></td><td></td><td></td><td></td><td id="plus">+</td><td id="moins">-</td></tr>');
        });

        $("tr #moins").click(function(){
            $(this).parent().remove();
            i--;
        });
});
</script>
</body>
</html>

quelle est la solution et merci d'avance

1 réponse


SLK
Réponse acceptée

Salut,

je trouve probléme est quand il ajout un tr ( dans cette tr il y'a boutton ajout d'une autre tr qu'il n'est pas fonctionne)

Trop difficile là... Essaie de traduire ta demande en Anglais pour voir.

Sinon il y a des trucs bizarre comme :

$( '#test #tbody' )

Si tu veux "attacher" une même action au clic de différents éléments,
il faut rajouter une virgule entre les éléments :

$( '#test, #tbody' )

(on peut aussi remplacer les différents 'id' par une même 'class',
ou bien juste rajouter une même 'class' s'il faut garder 2 id différents pour autre chose)

Mais j'ai plutôt l'impression que tu veux faire comme en CSS,
mettre la règle seulement pour un '#tbody' qui est dans un '#test'.
Si c'est ça,
alors non, met juste $( '#tbody' ),
et s'il y a plusieurs '#tbody' dans ton HTML, alors il faut soit leur donner un ID différent s'ils doivent avoir un comportement différent,
soit remplacer les 'id' par des 'class' s'il doivent avoir le même comportement.