我想从 html 中删除所有文本并仅打印标签。我最后写了这个:
var html = $('html');
var elements = html.find('*');
elements.text('');
alert(html.html());
Run Code Online (Sandbox Code Playgroud)
它只打印出来<head></head><body></body>
。不是说要打印所有标签吗?我的 html 中有近 2000 个标签。
var elements = html.find('*');
elements.text('');
Run Code Online (Sandbox Code Playgroud)
这就是说“找到下面的所有元素html
,然后清空它们”。其中包括body
和head
。当它们被清空时,页面上没有其他元素,因此它们是唯一出现在html
的内容中的元素。
如果您确实想要从页面中删除所有文本并保留元素,则必须使用 DOM 方法来完成:
html.find('*').each(function() { // loop over all elements
$(this).contents().each(function() { // loop through each element's child nodes
if (this.nodeType === 3) { // if the node is a text node
this.parentNode.removeChild(this); // remove it from the document
}
});
})
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
1847 次 |
最近记录: |