Die Core-Eigenschaft nodeType
ermöglicht die Unterscheidung zwischen Knotenarten. In diesem speziellen Fall repräsentiert 8 Kommentare. Da sie keinen Selektor haben, müssen Sie ihre Eltern durchlaufen, um sie zu bekommen (was saugt, weiß ich). Der folgende Code filtert sie heraus für Sie:
$("*").contents().filter(function(){
return this.nodeType == Node.COMMENT_NODE;
})
Und meine eigene jQuery-Version weniger, weil einige Leute es nicht haben:
function getAllComments() {
var t = [],
recurse = function (elem) {
if (elem.nodeType == Node.COMMENT_NODE) {
t.push(elem);
};
if (elem.childNodes && elem.childNodes.length) {
for (var i = 0; i < elem.childNodes.length; i++) {
recurse(elem.childNodes[i]);
};
};
};
recurse(document.getElementsByTagName("html")[0]);
return t;
};
Wenn Sie auf einem bestimmten suchen möchten Verknüpfen Sie den Knoten document.getElementsByTagName
mit einer Variablen Ihrer Wahl.
Bearbeiten: fiddle, um die Verwendung zu demonstrieren, von Jason Sperske getan!
möglich Duplikat von [Auswählen von HTML-Kommentaren mit jQuery] (http://stackoverflow.com/questions/1623734/selecting-html-comments-with-jquery) –
Wow, ich war ** sicher ** Ich wusste diesen Kommentar Knoten wurden entfernt. Aber nicht soweit ich das beurteilen kann: http://jsbin.com/ivufav/1/edit Habe es in Firefox, Chrome und sogar IE7 versucht. Sie alle hatten einen Knoten mit 'nodeType == 8' im Ziel und löschten somit keine Kommentare. –
@ SébastienRenault: Kein Duplikat, da diese Frage das 'jquery' -Tag angibt, dieses nicht. Es fragt explizit nach einer DOM-API, nicht nach einer Bibliothek. (Und das OP weiter geklärt im Kommentar zu einer Antwort, dass er nicht jQuery verwenden möchte.) –