Domanda

bene

Il codice di seguito funziona. Ma se cambio la stringa HTML in newPara () per <textarea></textarea><button id="someId">Save</button> o <textarea></textarea><input type="button" value="Save"/> non il suo lavoro. Qual è il problema in questo?

Ho bisogno che attributo id per rimuovere il codice html appena collegato.

Le eventuali suggerimenti!

Grazie!

<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>
È stato utile?

Soluzione

La mia unica ipotesi è che si sta utilizzando le virgolette doppie per creare letterale stringa, ma anche il loro utilizzo all'interno della stringa, quindi terminare presto.

Se è così, in questo modo:

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

dovrebbe essere:

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

Si noti che ho usato le virgolette singole al di fuori, in modo che quelle interne non lo fanno vicino la stringa.

Provalo: http://jsfiddle.net/QQrHr/

L'esempio utilizza il codice esatto. L'unico cambiamento che ho fatto è stato quello di utilizzare le virgolette attorno alla stringa singe.

Si potrebbe anche sfuggire alle citazioni interne se si voleva:

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

Altri suggerimenti

Siete alla ricerca di accodamento anziché dopo? O anche http://api.jquery.com/insertAfter/ ?

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top