Question

Le code ci-dessous fonctionne très bien. Mais si je change la chaîne HTML dans newPara () pour <textarea></textarea><button id="someId">Save</button> ou <textarea></textarea><input type="button" value="Save"/> son ne fonctionne pas. Quel est le problème dans ce domaine?

Je dois cet attribut id pour supprimer le code html nouvellement joint.

Toutes les suggestions!

Merci!

<html>
  <head>
    <style>
      p { background:yellow; font-weight:bold; cursor:pointer; padding:5px; }
      p.over { background: #ccc; }
      span { color:red; }
    </style>
    <script src="http://code.jquery.com/jquery-latest.min.js"></script>
  </head>
  <body>
    <div id="aDiv">
      <p>Click me!</p>
    </div>

    <span></span>
    <script>
      $("body").delegate("p", "click", newPara);
      $("body").undelegate("button", "click", newPara).find("#adiv").html("<p>Click me!</p>");
      function newPara() {
        var html = "<textarea></textarea><button>Save</button>";
        $(this).after(html);
      }
    </script>
  </body>
</html>
Était-ce utile?

La solution

Ma seule supposition serait que vous utilisez des guillemets doubles pour créer le littéral de chaîne, mais aussi de les utiliser à l'intérieur de la chaîne, se terminant donc tôt.

Si oui, ceci:

"<textarea></textarea><button id="someId">Save</button>"

devrait être:

'<textarea></textarea><button id="someId">Save</button>'

Notez que j'ai utilisé des guillemets simples à l'extérieur, de sorte que ceux de l'intérieur ne ferment pas la chaîne.

Essayez-: http://jsfiddle.net/QQrHr/

L'exemple utilise votre code exact. Le seul changement que j'ai fait était d'utiliser les guillemets autour de la chaîne singe.

Vous pouvez également échapper aux citations internes si vous voulez:

"<textarea></textarea><button id=\"someId\">Save</button>"

Autres conseils

Vous cherchez append au lieu de après? Ou même http://api.jquery.com/insertAfter/ ?

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top