15

jQueryの選択からテキストを取得するのは簡単です。

<span id="foo">hello world</span>

$('#foo').text();

hello world

ただし、jQueryの選択に<br>タグが含まれている場合、それらは概念的には空白である改行です。残念ながら.text()、それらを完全に削除します。

<span id="foo">hello<br>world</span>

$('#foo').text();

helloworld

そのようなスパンからテキストを抽出して、hello world代わりに結果を得るにはどうすればよいですか?

もちろん、これは問題を明確に保つために考案された簡単な例です。実際の答えは「同等.text()」であり、もちろん任意のHTMLを処理する必要があります。これも少しトリッキーな例です。

<div id="foo"><span class="bar"><em>hello</em><br></span>world</div>
4

3 に答える 3

12

Mimsが提案しているように、をスペースにreplaceWith()変更するために使用しますが、元の要素を変更しないために、要素のクローンを作成するために使用します。<br>clone()

var foo = $("#foo").clone();
foo.find("br").replaceWith(" ");
var text = foo.text();

デモ

于 2013-01-10T00:01:47.990 に答える
12

.html()の代わりに使用 .text()

$('#foo').html();

またはDOMメソッドを使用します.innerText

$('#foo')[0].innerText ;

フィドルをチェック

于 2013-01-09T23:48:02.483 に答える
3

この機能を使用できますreplaceWith()

$("br").replaceWith(" ");
于 2013-01-09T23:54:25.567 に答える