【发布时间】:2016-04-11 05:08:28
【问题描述】:
我正在尝试使用 jQuery 从带有 .text() 的 div 中获取文本。这可行,但 div 用作内联编辑器(tinymce),因此其中有一些标记,例如:
<p>sometext<span id="_mce_caret" data-mce-bogus="true"><strong>sometext2</strong></span><br data-mce-bogus="1"></p>
span基本上是换行,但是在获取文本的时候,把所有的html标签都去掉了(这是必须的),但是文本也合并在一起成为一个“字”:
sometextsometext2
虽然应该是:
sometext sometext2
也许甚至是:
一些文本。 sometext2.
如何做到这一点?
这是我已经使用的代码:
var textareaValues = jQuery('.desc-meta').map(function(){
return jQuery(this).text();
}).get();
console.log(textareaValues);
谢谢
编辑 有关丢失的更多信息: 我有多个 div(5 个或 6 个):
<div class="desc-meta">
<p>sometext<span id="_mce_caret" data-mce-bogus="true">
<strong>sometext2</strong></span><br data-mce-bogus="1"></p>
</div>
<div class="desc-meta">
<p>This is some extra sometext<span id="_mce_caret" data-mce-bogus="true">
<strong>Some extra sometext2</strong></span><br data-mce-bogus="1"></p>
</div>
<div class="desc-meta">
<p>sometext<span id="_mce_caret" data-mce-bogus="true">
<strong>sometext2</strong></span><br data-mce-bogus="1"></p>
</div>
这些div中的文本需要“合并”成1个字符串,所以上面的div应该是:
sometext sometext2. This is some extra sometext Some extra sometext2. sometext sometext2.
这将存储在隐藏的输入中。 所以没有html标签,但保留单词/句子之间的空格。
这是我目前拥有的 jquery:
var descText = '';
jQuery('#registration-form').find('.desc-meta').each(function(){
if (jQuery.trim(jQuery(this).text()) != "") {
var textareaValues = jQuery('.desc-meta').map(function(){
return jQuery(this).text();
}).get().join(' ');
console.log(textareaValues);
descText = textareaValues.join(', ');
}
});
jQuery('#description').val(descText);
【问题讨论】:
标签: javascript jquery