次のマークアップを検討してください。
<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"
ただし、親要素にアクセスできるので、これで仕事の半分は完了します。
したがって、主な問題は、ドキュメント内と同じ順序でテキスト ノードを取得するにはどうすればよいかということです。