¿Cómo obtengo un comentario en HTML con javascript?

Si tengo eso

 

¿Cómo obtengo este elemento y cambio el contenido con javascript? Y si tengo un código dentro de eso y quiero eliminar la etiqueta de comentarios, ¿cómo puedo hacerlo?

Usando un NodeIterator (IE> = 9)

El mejor método es usar una instancia dedicada de NodeIterator que itere todos los comentarios contenidos en un elemento raíz dado.

¡Véalo en acción!

 function filterNone() { return NodeFilter.FILTER_ACCEPT; } function getAllComments(rootElem) { var comments = []; // Fourth argument, which is actually obsolete according to the DOM4 standard, is required in IE 11 var iterator = document.createNodeIterator(rootElem, NodeFilter.SHOW_COMMENT, filterNone, false); var curNode; while (curNode = iterator.nextNode()) { comments.push(curNode.nodeValue); } return comments; } window.addEventListener("load", function() { console.log(getAllComments(document.body)); }); 

Usar un recorrido de DOM personalizado (para soportar IE <9 también)

Si tiene que admitir navegadores más antiguos (por ejemplo, IE <9), debe recorrer el DOM usted mismo y extraer los elementos cuyo tipo de nodo sea Node.COMMENT_NODE .

¡Véalo en acción!

 // Thanks to Yoshi for the hint! // Polyfill for IE < 9 if (!Node) { var Node = {}; } if (!Node.COMMENT_NODE) { // numeric value according to the DOM spec Node.COMMENT_NODE = 8; } function getComments(elem) { var children = elem.childNodes; var comments = []; for (var i=0, len=children.length; i 

Extraer el contenido de un nodo y eliminarlo

Independientemente de la forma en que elija desde arriba, recibe los mismos objetos DOM del nodo.

Acceder a los contenidos de un comentario es tan fácil como commentObject.nodeValue .
Eliminar un comentario es un poco más detallado: commentObject.parentNode.removeChild(commentObject)

Tienes que atravesar el DOM para obtenerlo. El nodeType del elemento DOM del comentario es 8

 if( oNode.nodeType === 8 ) { oNode.parentNode.removeChild( oNode ); } 

sería un enfoque

Aquí hay un plugin de JQuery que recupera los comentarios:

http://www.bennadel.com/blog/1563-jQuery-Comments-Plug-in-To-Access-HTML-Comments-For-DOM-Templating.htm

La idea básica es mirar los nodes , no los elements :

http://www.w3schools.com/htmldom/dom_nodes.asp

childNodes con el objeto del document e itere a través de ellos utilizando la colección childNodes . node.nodeType == 8 comprobar node.nodeType == 8 que devolverá solo los nodos de comentario (tenga en cuenta que debe iterar recursivamente a través de nodos secundarios).