2

下面的代码工作正常。但是,如果我将 newPara() 中的 html 字符串更改为<textarea></textarea><button id="someId">Save</button><textarea></textarea><input type="button" value="Save"/>它不起作用。这有什么问题?

我需要该 id 属性来删除新附加的 html。

有什么建议么!

谢谢!

<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>
4

2 回答 2

1

您是否在寻找追加而不是之后?甚至http://api.jquery.com/insertAfter/

于 2010-11-01T12:57:40.923 回答
1

我唯一的猜测是您使用双引号来创建字符串文字,但也在字符串中使用它们,因此提前终止它。

如果是这样,这个:

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

应该:

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

请注意,我在外面使用了单引号,这样里面的引号就不会关闭字符串。

试试看:http: //jsfiddle.net/QQrHr/

该示例使用您的确切代码。我所做的唯一更改是在字符串周围使用单引号。

如果需要,您也可以转义内部引号:

"<textarea></textarea><button id=\"someId\">Save</button>"
于 2010-11-01T12:57:59.917 回答