Comment ajouter un bouton dynamiquement à l'aide de jquery

Ma tâche est d'ajouter un bouton dynamiquement à la div … Voici le code que je suivez pour ajouter un bouton de façon dynamique mais ne fonctionne pas s'il vous plaît me donner une solution pour cela

<!DOCTYPE html> <html> <head> <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script> <script type="text/javascript"> function test() { var r = "$('<input/>').attr({ type: "button", id: "field" })"; } $("body").append(r); </script> </head> <body> <button onclick="test()">Insert after</button> </body> </html> 

Code pour ajouter le bouton sur div lorsque la page se charge mais ne fonctionne pas

 <!DOCTYPE html> <html> <head> <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"> </script> <script> function test() { var r=$('<input/>').attr({ type: "button", id: "field" }); test().append("#test"); } </script> </head> <body> <div id="test"></div> <button id="insertAfterBtn" onclick="test()">Insert after</button> </body> </html> 

Votre ligne d'ajout doit être dans votre fonction test()

MODIFIER:

Voici deux versions:

Version 1: jQuery listener

 $(function(){ $('button').on('click',function(){ var r= $('<input type="button" value="new button"/>'); $("body").append(r); }); }); 

DEMO ICI

Version 2: avec une fonction (comme votre exemple)

 function createInput(){ var $input = $('<input type="button" value="new button" />'); $input.appendTo($("body")); } 

DEMO ICI

Remarque: Ceci peut être fait soit avec .appendTo ou avec .append .

L'énoncé $("body").append(r) devrait être dans la fonction de test , aussi il y avait mal placé " dans la méthode de test

 function test() { var r=$('<input/>').attr({ type: "button", id: "field", value: 'new' }); $("body").append(r); } 

Demo: Fiddle

Mettre à jour
Dans ce cas, essayez une solution plus jQuery-ish

 <!DOCTYPE html> <html> <head> <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script> <script type="text/javascript"> jQuery(function($){ $('#mybutton').one('click', function(){ var r=$('<input/>').attr({ type: "button", id: "field", value: 'new' }); $("body").append(r); }) }) </script> </head> <body> <button id="mybutton">Insert after</button> </body> </html> 

Demo: Plunker

Essaye ça:

 <script type="text/javascript"> function test() { if($('input#field').length==0) { $('<input type="button" id="field"/>').appendTo('body'); } } </script> 

Essaye ça

 function test() { $("body").append("<input type='button' id='field' />"); } 

Travailler ici .

Pour ajouter la nouvelle entrée une seule fois, utilisez le code suivant:

 $(document).ready(function() { $("#insertAfterBtn").one("click", function(e) { var r = $('<input/>', { type: "button", id: "field", value: "I'm a button" }); $("body").append(r); }); }); 

[… source déchirée ici]

 <body> <button id="insertAfterBtn">Insert after</button> </body> 

[… source déchirée ici]

Pour le faire fonctionner dans l'éditeur w3, copiez / collez le code ci-dessous dans la section 'code source' à l'intérieur de l'éditeur w3, puis appuyez sur 'Envoyer le code':

 <!DOCTYPE html> <html> <head> <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script> </head> <body> <button id="insertAfterBtn">Insert only one button after</button> <div class="myClass"></div> <div id="myId"></div> </body> <script type="text/javascript"> $(document).ready(function() { // when dom is ready, call this method to add an input to 'body' tag. addInputTo($("body")); // when dom is ready, call this method to add an input to a div with class=myClass addInputTo($(".myClass")); // when dom is ready, call this method to add an input to a div with id=myId addInputTo($("#myId")); $("#insertAfterBtn").one("click", function(e) { var r = $('<input/>', { type: "button", id: "field", value: "I'm a button" }); $("body").append(r); }); }); function addInputTo(container) { var inputToAdd = $("<input/>", { type: "button", id: "field", value: "I was added on page load" }); container.append(inputToAdd); } </script> </html>