Pregunta

bien

El código de abajo está trabajando. Pero si cambio la cadena HTML en newPara () para <textarea></textarea><button id="someId">Save</button> o <textarea></textarea><input type="button" value="Save"/> no su trabajo. ¿Cuál es el problema en este?

necesito ese atributo id para eliminar el html recién conectados.

Cualquier sugerencias!

Gracias!

<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>
¿Fue útil?

Solución

Mi única conjetura sería que usted está utilizando comillas dobles para crear la cadena literal, sino también su uso dentro de la cadena, por lo tanto, que termina antes de tiempo.

Si es así, esto:

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

debería ser:

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

Tenga en cuenta que he usado comillas simples en el exterior, de manera que los interiores no se cierran la cadena.

Pruébelo: http://jsfiddle.net/QQrHr/

El ejemplo utiliza el código exacto. El único cambio que hice fue usar comillas alrededor de la cadena chamusquina.

También podría escapar de las cotizaciones internas si quería:

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

Otros consejos

¿Está buscando datos anexados en lugar de después? O incluso http://api.jquery.com/insertAfter/ ?

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top