ein Element mit Kommentar zu wickeln, oder genauer gesagt ersetzen ein Element mit einem Kommentarknoten, der den HTML-Code dieses Elements aufweist:
my_element_jq = $('.my_element');
comment = document.createComment(my_element_jq.get(0).outerHTML);
my_element_jq.replaceWith(comment);
Um zurückzuschalten:
$(comment).replaceWith(comment.nodeValue);
Wenn Sie den Verweis auf den Kommentarknoten nicht haben, dann müssen Sie den DOM-Baum zu durchlaufen und überprüfen nodeType
jedes Knotens. Wenn der Wert 8 ist, ist es ein Kommentar.
Zum Beispiel:
<div id="foo">
<div>bar</div>
<!-- <div>hello world!</div> -->
<div>bar</div>
</div>
JavaScript:
// .contents() returns the children of each element in the set of matched elements,
// including text and comment nodes.
$("#foo").contents().each(function(index, node) {
if (node.nodeType == 8) {
// node is a comment
$(node).replaceWith(node.nodeValue);
}
});
Es wäre nützlich zu wissen, was Ihr Anwendungsfall ist. Ich kann mir nicht viele Situationen vorstellen, in denen dies das Richtige ist, anstatt entweder das Element zu verstecken oder es aus dem DOM zu entfernen und es später wieder hinzuzufügen. – SamStephens
Ich habe noch nie so etwas gesehen :) bedenken Sie, es zu verstecken, das Ergebnis ist das gleiche. Versteckt vom Bildschirm, aber sichtbar im Quellcode, gleiches Ergebnis. – gpasci
Ich kann es nicht verstecken, weil ich ein jquery plugin benutze, ähnlich dem Maurerwerk, das es wieder enthüllt. – George