jessegilbride
9/17/2014 - 6:43 PM

A jQuery plugin to gather HTML comments. Source: http://www.bennadel.com/blog/1563-jquery-comments-plug-in-to-access-html-comments-for-dom-t

// This jQuery plugin will gather the comments within
// the current jQuery collection, returning all the
// comments in a new jQuery collection.
//
// NOTE: Comments are wrapped in DIV tags.
 
jQuery.fn.comments = function( blnDeep ){
    var blnDeep = (blnDeep || false);
    var jComments = $( [] );
 
    // Loop over each node to search its children for
    // comment nodes and element nodes (if deep search).
    this.each(
        function( intI, objNode ){
            var objChildNode = objNode.firstChild;
            var strParentID = $( this ).attr( "id" );
 
            // Keep looping over the top-level children
            // while we have a node to examine.
            while (objChildNode){
 
                // Check to see if this node is a comment.
                if (objChildNode.nodeType === 8){
 
                    // We found a comment node. Add it to
                    // the nodes collection wrapped in a
                    // DIV (as we may have HTML).
                    jComments = jComments.add(
                        "<div rel='" + strParentID + "'>" +
                        objChildNode.nodeValue +
                        "</div>"
                        );
 
                } else if (
                    blnDeep &&
                    (objChildNode.nodeType === 1)
                    ) {
 
                    // Traverse this node deeply.
                    jComments = jComments.add(
                        $( objChildNode ).comments( true )
                        );
 
                }
 
                // Move to the next sibling.
                objChildNode = objChildNode.nextSibling;
 
            }
 
        }
        );
 
    // Return the jQuery comments collection.
    return( jComments );
}