6

これは私のコードです...追加は機能していますが、削除は機能していません。追加されたdivを削除するには?

<html>
  <head>
    <script type="text/javascript">
      function view(){
        $('body').append('<div class="added"><p>something</p></div>');
      };
      function close(){
        $('.added').remove();
      } ;
    </script>
  </head>
  <body>
    <a onclick="view();">something</a>
    <a onclick="close();">close</a>
  </body>
</html>
4

2 に答える 2

6

HTML ハンドラで次のように指定window.closeします。

   <a onclick="window.close();">close<a>

http://jsfiddle.net/ZTwd7/1/

それ以外の場合は、何もしないclose()ネイティブ メソッドを参照します。close

「javascript」(インライン html 属性ではなく) ハンドラでエミュレートする方法は次のとおりです。

elem.onclick = function(event) {
    with(Window.prototype) {
        with(document) {
            with(this) {
                close();
            }
        }
    }
};

これは正確な再現ではありません (また、IE などでは機能しません。それは重要ではありません) が、スコープ内のグローバルの前に配置.closeされるため、シャドウします。で明示的に参照できます。Window.prototypewindow.closewindow.close()


また、上記を完全に削除して、代わりに jQuery を使用する必要があります。

<a id="view">something<a>
<a id="close">close<a>

JS:

$(function() {
    $("#view").click(function() {
        $('body').append('<div class="added"><p>something</p></div>');

    });
    $("#close").click(function() {
        $('.added').remove();

    });
});​

http://jsfiddle.net/ZTwd7/5/


追加する html ファイルをフェッチする ajax リクエストを作成します。

$.get("myhtml.html", function(html) {
    $("body").append(html);
}, "html");
于 2012-08-10T11:58:22.373 に答える
1

理由はわかりませんが、 close() の代わりに close 関数に別の名前を付けることで機能します

<html>
    <head>
<script src="http://code.jquery.com/jquery-latest.js"></script>

   <script type="text/javascript">
            function view(){
                     $('body').append('<div class="added"><p>something</p></div>');
            };
            function close_it(){
                                       $('.added').remove();

            } ;

    </script>
</head>
<body>
   <a onclick="view();">something<a>
   <a onclick="close_it();">close<a>
</body></html>
于 2012-08-10T12:11:22.457 に答える