次のような HTML があった場合:
<li id="listItem">
This is some text
<span id="firstSpan">First span text</span>
<span id="secondSpan">Second span text</span>
</li>
「This is some text」という文字列だけを取得するためにを使用しようとしています.text()
が、 とすると$('#list-item').text()
、「This is some textFirst span textSecond span text」という結果になります。
.text("")
子タグ内のテキストではなく、タグ内のフリーテキストだけを取得する (または、 などを使用して削除する) 方法はありますか?
HTML は私が書いたものではないので、これを使って作業する必要があります。HTML を書くときにテキストをタグで囲むだけで簡単にできるのはわかっていますが、繰り返しますが、HTML は事前に書かれています。
ベストアンサー1
clone()
見つかったメソッドに基づいたこの再利用可能な実装が気に入りましたここ親要素内のテキストのみを取得します。
簡単に参照できるようにコードが提供されています:
$("#foo")
.clone() //clone the element
.children() //select all the children
.remove() //remove all the children
.end() //again go back to selected element
.text();