我有一个div(来自https://api.jquery.com/contents/的例子):
<div class="container">
Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed
do eiusmod tempor incididunt ut labore et dolore magna aliqua.
<br><br>
Ut enim ad minim veniam, quis nostrud exercitation ullamco
laboris nisi ut aliquip ex ea commodo consequat.
<br><br>
Duis aute irure dolor in reprehenderit in voluptate velit
esse cillum dolore eu fugiat nulla pariatur.
</div>
然后我尝试从div获取所有文本,使用<p>
标记格式化并剥离br
标记:
TextVar =
$( ".container" )
.contents()
.filter(function() {
return this.nodeType === 3;
})
.wrap( "<p></p>" )
.end()
.filter( "br" )
.remove();
但我收到错误undefined is not a function
。然后我放弃.wrap("<p></p>")
进行测试(请参阅此答案,例如I keep getting undefined is not a function)。但是,如果我删除wrap
,代码不会抛出错误,而是只获得<br><br><br><br>
。我应该如何更改我的代码以获取文本?
答案 0 :(得分:1)
你可以这样做:
var _html = "<p>" + $(".container").text() + "</p>";
答案 1 :(得分:0)
一种方法是这样的:
小提琴:http://jsfiddle.net/z0wL5ckt/
var text = $(".container").text();
var paragraph = $("<p>" + text + "</p>");
$('body').append(paragraph);
更新以根据<br><br>
小提琴:http://jsfiddle.net/z0wL5ckt/4/
var text = $(".container").html();
var textSplit = text.split('<br><br>');
var paragraphs = '', index = 0, length = textSplit.length;
for ( ; index < length; index++) {
paragraphs += "<p>" + textSplit[index] + "</p>";
}
$('body').append(paragraphs);
编辑:如果感兴趣,可以获得纯粹的javascript解决方案! =]
小提琴:http://jsfiddle.net/z0wL5ckt/3/
var text = document.querySelector(".container").innerHTML;
var textSplit = text.split('<br>');
var paragraphs = '', index = 0, length = textSplit.length;
for ( ; index < length; index++) {
paragraphs += "<p>" + textSplit[index] + "</p>";
}
document.getElementsByTagName('body')[0].innerHTML += paragraphs;
更新:对于纯文本,请使用此
var text = $(".container").text();
更新:这里只是文字,它仍然会破坏线条,但这不适用于在HTML中显示,但它会保留线条以便显示在其他位置。
小提琴:http://jsfiddle.net/z0wL5ckt/5/
var text = $(".container").html();
var textSplit = text.split('<br><br>');
var textWithBreaks = '';
var paragraphs = '', index = 0, length = textSplit.length;
for ( ; index < length; index++) {
paragraphs += "<p>" + textSplit[index] + "</p>";
textWithBreaks += textSplit[index] + '\n';
}
$('body').append(paragraphs);