sud*_*uds 9 html javascript regex jquery
带有一些注释标签的Html表.我只想取消注释这些标签.我已经尝试使用javascript的正则表达式,但问题是它删除整个注释行,因为我只是想取消注释这些标签.下面带有注释标签的示例html表...
<table>
<tr>
<td>ABCD</td>
<td>Logic</td>
<!-- <td>26538568</td> -->
</tr>
</table>
Run Code Online (Sandbox Code Playgroud)
所以在上面的代码中我只是想取消注释 <!-- <td>26538568<td> -->.请这是从网页抓取数据的一部分,所以我无法更改html代码.上面提到的表结构类似于我尝试提取数据的网页.
Kob*_*obi 13
您可以使用DOM来完成此操作,而无需将文档视为文本.例如,使用jQuery:
$('table tr')
.contents()
.filter(function(){return this.nodeType === 8;}) //get the comments
.replaceWith(function(){return this.data;})
Run Code Online (Sandbox Code Playgroud)
这里有趣的是.contents,它返回所有节点,而不仅仅是元素 - 这包括文本节点和注释.
工作示例:http://jsfiddle.net/9Z5T5/2/
注意事项:我不确定跨浏览器是怎么回事.具体而言,可能node.data不受支持.我在Firefox,Chrome和IE 10中测试了这段代码.
所以你需要做查找和替换,例如这样的:
$("body").html($("body").html().replace('<!--', '<!--'));
Run Code Online (Sandbox Code Playgroud)
然后它会显示评论有文字