Does any one know how to select HTML comment nodes with jQuery?
<html>
<head>
<title>Check Test</title>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script>
<script type="text/javascript">
$(function() {
$("body *").each(function() {
alert($(this).wrap("<span />").parent().html());
});
});
</script>
</head>
<body>
<!-- Hello -->
<p>
<label for="thing">Thing Label</label>
<input id="thing" type="checkbox" />
</p>
This doesn't pick up the comment.
This seems to do something equivalent to what you're looking for:
$(function() {
$("body").contents().filter(function(){
return this.nodeType == 8;
}).each(function(i, e){
alert(e.nodeValue);
});
});
There's the jQuery comments() plugin which will do that for you. Usage:
var comments = $( "#foo" ).comments();
alert(comments.html());
And if you don't want a plugin:
var content = jQuery('body').html();
alert(content.match(/<!--.*?-->/g));
This uses regular expressions. It is set to search for anything enclosed by <!--
and -->
while it doesn't matter what's written on the inside.
NOTE: I am not sure however, if jQuery also returns comments. If it does not, this approach does not work.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With