有没有人知道如何用jQuery选择HTML注释节点?
<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>
Run Code Online (Sandbox Code Playgroud)
这不会发表评论.
小智 115
这似乎与你正在寻找的东西相当:
$(function() {
$("body").contents().filter(function(){
return this.nodeType == 8;
}).each(function(i, e){
alert(e.nodeValue);
});
});
Run Code Online (Sandbox Code Playgroud)
kar*_*m79 12
有jQuery comments()插件可以帮到你.用法:
var comments = $( "#foo" ).comments();
alert(comments.html());
Run Code Online (Sandbox Code Playgroud)
Mik*_*ike 12
如果你不想要一个插件:
var content = jQuery('body').html();
alert(content.match(/<!--.*?-->/g));
Run Code Online (Sandbox Code Playgroud)
这使用正则表达式.它被设置为搜索任何包围的内容<!--,-->而内部写的内容无关紧要.
注意:我不确定,如果jQuery也返回注释.如果没有,这种方法不起作用.
小智 6
再一次,我在游戏中已经迟到了,但我认为我会回馈,因为我发现这篇文章对我最近遇到的情况很有帮助.
在我们的上下文中,我们有一个广告服务提供代码块来呈现广告.
每个广告都有唯一的"航班ID".意思是相同的250x300侧轨广告可以有多个航班.因此,在一次展示中,您可能会看到地铁,刷新和Quizno的广告.
不幸的是,该服务在评论中提供此航班ID,而不是像数据属性那样有用的东西.也就是说,每条评论都在一个标签内.
从上面开始,我能够将这个解决方案放在一起,利用RegExp对象的JavaScript的exec()方法获取评论中的航班号:
regexComment = new RegExp(/<!--\s*ad flight id:\s*([0-9]+)\s*-->/i);
targetElement = regexComment.exec($('div.advertisement').html());
if(targetElement.length > 0) {
return parseInt(targetElement[1]);
}
Run Code Online (Sandbox Code Playgroud)
再次,在游戏后期道歉,但我认为提供另一种方法解决这个问题并没有什么坏处.
| 归档时间: |
|
| 查看次数: |
41335 次 |
| 最近记录: |