2012-08-10 6 views
5

das ist mein Code ... append funktioniert, aber Entfernen funktioniert nicht. Wie entferne ich das angefügte div?entfernen der div angehängt mit Append-Methode

<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> 
+0

i diff Code von mistake..this schrieb mein Code gerade jetzt .. was nicht funktioniert – user1531746

Antwort

5

Geben window.close in Ihrem HTML-Handler:

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

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

Ansonsten close() auf die native close Verfahren bezieht, die nichts zu tun hat.

Hier ist, wie Sie es mit einem „javascript“ emulieren würde (im Gegensatz HTML-Attribut Inline) Handler:

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

Dies ist nicht exakte Reproduktion (auch nicht in IE etc funktioniert, das ist nicht der Punkt) aber es würde die .close in Window.prototype vor dem globalen window.close in den Geltungsbereich, so dass es Schatten. Sie können immer noch explizit auf window.close() verweisen.


Sie sollten auch völlig die oben fallen und verwenden jQuery statt:

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


eine Ajax-Anfrage zu machen, die eine abruft html fi le werden angehängt:

$.get("myhtml.html", function(html) { 
    $("body").append(html); 
}, "html"); 
+0

Nun, er tut das in seiner Funktion ... - Entschuldigung, lesen Sie einfach Ihren Kommentar, wusste nicht, dass er seinen Code geändert hat. – SamiSalami

+0

das funktioniert, aber können Sie erklären..wie nur hinzufügen "Fenster" macht es gut? – user1531746

+0

@ user1531746 weil 'window.close' von' Window.prototype.close' beschattet wird. Ein weiterer Grund, HTML-Handler zu vermeiden, sie haben eine Menge "mit" Magie. – Esailija

1

Sie wissen nicht, warum, aber durch einen anderen Namen setzen Funktion zu schließen statt close() funktioniert es

<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> 
Verwandte Themen