从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>
答案 0 :(得分:12)
使用.html()
代替.text()
$('#foo').html();
或者使用DOM方法.innerText
$('#foo')[0].innerText ;
<强> Check Fiddle 强>
答案 1 :(得分:11)
由于Mims建议使用replaceWith()
将<br>
更改为空格,但是为了不更改原始元素,请使用clone()
来复制元素。
var foo = $("#foo").clone();
foo.find("br").replaceWith(" ");
var text = foo.text();
答案 2 :(得分:2)
您可以使用replaceWith()
功能。
$("br").replaceWith(" ");