考虑以下标记:
<div>Hello, my <span>name</span> is John</div>
我需要按顺序获取文本节点和包含它们的元素,如下所示:
1:"Hello, my "
,<div>
(HTML元素)
2:"name"
,<span>
(HTML元素)
3:" is John"
,<div>
(HTML元素)
这需要以一种允许我稍后获得 HTMLElements 的 CSS 样式的方式完成。
我已经尝试过的:
$(foo).find('*').contents().filter(function() {
var $this = $(this);
return this.nodeType === 3 && $.trim($this.text()).length > 0;
});
这会产生一个不连续的结果集,如下所示:
1:"Hello, my "
2:" is John"
3:"name"
但是,我可以访问它们的父元素,所以这完成了一半的工作。
因此,主要问题是:如何以与文档中相同的顺序获取文本节点?