将所有段落合并为一个段落
Combine all paragraphs to make a single paragraph
我有一个要求,我在#postrightcolumn
里面得到了很多<p>something</p>
。我想将所有段落合并为一个段落。这里有一个例子:-
<div id="postrightcolumn">
<p>line 1</p>
<p>line 2</p>
</div>
我想把它变成:
<div id="postrightcolumn">
<p>line 1 line 2</p>
</div>
这是我正在使用的jQuery,它没有帮助:
<script>
//var cleanDescription = "";
//$('#postrightcolumn p').each(function () {
// var $this = $(this);
// cleanDescription += $this.text();
// console.log("Paragraph found : " + $this.text());
//});
//console.log("Combined Paragraph : " + cleanDescription);
var cleanDescription = "";
$('#postrightcolumn p').each(
function () {
var $this = $(this);
cleanDescription += $this.text();
console.log("Paragraph found : " + $this.text());
},
function () {
console.log("Combined Paragraph : <p>" + cleanDescription + "</p>");
}
);
</script>
我需要知道如何在每个循环末端调用函数,以便我可以显示组合段落。
我的创意无串联解决方案...不一定是最易读的
var $p =$('#postrightcolumn p');
$p.first().html(function(){
return $p.map(function(){
return $(this).html() ;
}).get().join(' ');
}).end().filter(':gt(0)').remove();
演示
仅 CSS 的替代解决方案(维护相同的 # 个 <p>
标记)
#postrightcolumn p{ margin:0; display:inline}
演示 2
只需将元素的 HTML 设置为串联段落值的值即可。
var cleanDescription = "";
$('#postrightcolumn p').each(function () {
cleanDescription += $(this).text() + " ";
});
$('#postrightcolumn').html("<p>"+cleanDescription+"</p>");
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<div id="postrightcolumn">
<p>line 1</p>
<p>line 2</p>
</div>
如果你只想要来自 p 元素的文本,那么你不需要循环,因为 .text()
方法可用于获取多个元素的组合文本。
因此,下面的代码首先获取对所有段落的引用,然后将第一个段落的文本设置为所有段落的文本,然后删除除第一个段落之外的所有段落:
var $paras = $("#postrightcolumn p");
$paras.first().text($paras.text());
$paras.slice(1).remove();
演示:http://jsfiddle.net/bapw540b/1/
但是,正如您在该演示中看到的那样,使用.text()
(带或不带循环)会去除段落中的任何 html 元素,因此您将丢失任何斜体或嵌入图像或其他任何内容。所以你可能想改用 .html()
方法 - 因为它不会一次返回所有元素的内容,所以你需要一个循环:
var $paras = $("#postrightcolumn p"),
html = "";
$paras.each(function() {
html += $(this).html();
});
$paras.first().html(html);
$paras.slice(1).remove();
演示:http://jsfiddle.net/bapw540b/3/
相关文章:
- 谷歌应用程序脚本:如何修复循环将一个谷歌文档的段落插入另一个
- 将数组中的数据作为段落添加到一个文本区域
- 添加一个“;关闭“;按钮展开折叠段落
- 从数组列表中随机选择一个段落 Javascript
- 将所有段落合并为一个段落
- 分开一个段落列表,给每个单词单独的CSS
- 在CodeMirror中查找自定义语言模式的段落的第一个单词和最后一个单词
- Javascript:如何找到在长段落中选择了特定文本的哪个实例(例如,一个单词在一段中出现多次)
- 启用段落的背景色<p>当有一个带有CSS的引导按钮时
- 在jquery中,我如何检测一个段落是否包含一个链接,并且只有一个链接而没有其他链接
- 合并两个段落并删除中间的一个元素
- 您将如何构建一个正则表达式,将段落拆分为句子,但不拆分<>内的任何标点符号
- 选择一个JavaScript段落(点击)
- 如何在一个段落中放置不同的用户输入
- 统计jquery中一个区分大小写的单词在一个段落中出现的次数
- 段落中有一个'不应该出现的空格
- 列出一个HTML段落< >在一个时间效应
- 在PHP中插入一个jQuery段落'If'声明
- 如何选择一个词或段落在html没有id
- 如何将一个HTML段落元素的文本值传递给另一个HTML段落元素