méthode .after(), est-ce un bug de JQuery ?
Bonjour,
J'utilise JQuery pour générer quasiment entièrement des pages, et je suis régulièrement confronté à un problème dont je ne saurais dire s'il s'agit d'un bug ou d'une incompréhension de ma part.
J'utilise JQuery 2.1.1.1
Prenons l'exemple suivant :
Code:
1 2 3 4 5 6 7 8 9 10
| $("body").append($("<input />")
.attr("id", "my_item")
.attr("type", "text")
.val("pouet")
.after(
$("<label />")
.attr("for", "my_item")
.text("tutu")
)
); |
Ca ne marche pas, le label contenant tutu ne s'affichant pas...
En revanche, si j'écrit :
Code:
1 2 3 4 5 6 7 8 9
| var obj = $("body").append($("<input />")
.attr("id", "my_item")
.attr("type", "text")
.val("pouet")
);
obj.after($("<label />")
.attr("for", "my_item")
.text("tutu")
); |
Là, ça marche, si ce n'est que tutu apparaît à la ligne. Il me semble pourtant que les 2 exemples devraient être équivalent ?
Enfin, si j'écris :
Code:
1 2 3 4 5 6 7 8 9
| $("body").append($("<input />")
.attr("id", "my_item")
.attr("type", "text")
.val("pouet")
);
$("#my_item").after( $("<label />")
.attr("for", "my_item")
.text("tutu")
); |
Ca marche aussi et tutu apparaît tout de suite après le input...
Quelqu'un saurait-il expliquer ça ?
En vous remerciant