在某些情况下,`text`方法会删除单词之间的空格

时间:2015-03-11 07:05:43

标签: javascript jquery html css

从我的容器中,我正在尝试fetch text。但是有些原因,我在某些情况下没有得到word space。我在这里没有得到确切的问题以及如何解决这个问题..

在这个html我的控制非常有限,因为我从服务器获得了html

有人给我一个解决方案吗?

var myText = $('.textHighLight').text();
$('#parent').before(myText);

//look in to here: ANDMAINTENANCE, OFAL-GHARAFA (both AND and OF) lost their space.
#parent{
    border:1px solid red;
    position:relative;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="parent">
    <div style="white-space:pre;"><span class="cls_3 textHighLight userNote1">CONSTRUCTION</span><span class="cls_4 textHighLight userNote1"> </span><span class="cls_3 textHighLight userNote1">COMPLETION</span><span class="cls_4 textHighLight userNote1"> </span><span class="cls_3 textHighLight userNote1">AND</span></div>
<div style="white-space:pre;"><span class="cls_3 textHighLight userNote1">MAINTENANCE</span><span class="cls_4 textHighLight userNote1"> </span><span class="cls_3 textHighLight userNote1">OF</span><span class="cls_4 textHighLight userNote1"> </span><span class="cls_3 textHighLight userNote1">OUTDOOR</span><span class="cls_4 textHighLight userNote1"> </span><span class="cls_3 textHighLight userNote1">COOLING</span><span class="cls_4 textHighLight userNote1"> </span><span class="cls_3 textHighLight userNote1">OF</span></div>
<div style="white-space:pre;"><span class="cls_3 textHighLight userNote1">AL-GHARAFA</span><span class="cls_4 textHighLight userNote1"> </span><span class="cls_3 textHighLight userNote1">SPORTS</span><span class="cls_4 textHighLight userNote1"> </span><span class="cls_3 textHighLight userNote1">CLUB</span><span class="cls_4 textHighLight userNote1"> </span><span class="cls_3 textHighLight userNote1">FOR</span><span class="cls_4 textHighLight userNote1"> </span><span class="cls_3 textHighLight userNote1">ASPIRE</span></div>
<div style="white-space:pre;"><span class="cls_3 textHighLight userNote1">ZONE</span></div>
</div>

2 个答案:

答案 0 :(得分:1)

你的行var myText = $('.textHighLight').text();从带有类textHighLight的元素获取文本作为单个字符串,您需要使用$.each()循环遍历所有元素并传入文本并附加它,如:

var textArr = [];
$.each( $('.textHighLight'), function(idx, v) {
    textArr.push($(v).html());
});
$('#parent').before(textArr.join(" "));

答案 1 :(得分:1)

您的代码中没有元素,您会看到空的跨度,

  <span class="cls_4 textHighLight userNote1"> </span>

这是在某些情况下添加空格的位置,要么删除它们,请使用DemoUser's answer

或者只是添加它们,不添加它们。见Fiddle