JavaScript替换方法禁用换行符

时间:2015-06-18 00:52:05

标签: javascript jquery

我有一个id为#container的div,这个div包含几个字符串/行。我使用下面的代码隐藏该div中的特定字符串。

$('div#container').text(function (i, t) {
    return t.replace('Some text to be hidden', '');
})

问题是:通过添加上面的代码,div中的所有其他字符串/行连接在一起。即禁用换行符。如果我删除了代码,换行符就可以了。

如何在不禁用换行符的情况下隐藏该特定字符串?

我试图像这样:return t.replace('Some text to be hidden', '\n');,但这并没有帮助。

有什么建议吗?答案非常感谢。谢谢。

2 个答案:

答案 0 :(得分:0)

您需要在单个文本节点上进行搜索和替换,这样就不会破坏其他子元素(例如<br><p>标记)。

如果文本节点是#container对象的直接子节点,那么你可以这样做:

$('#container').contents().filter(function() {
  return this.nodeType === 3;
}).each(function() {
    this.nodeValue = this.nodeValue.replace('Some text to be hidden', '');
});

如果文本节点是更深层次的孩子,那么如果您向我们展示您正在使用的实际HTML,我们只能提供一个简单的答案。

答案 1 :(得分:-1)

您可以使用display none css http://jsfiddle.net/gShM4/67/

来尝试此操作
<div class="text">Good Stuff Some text to be hidden</br> above element is hide  </div>

$('div.text').html(function (i, t) {
    return t.replace('Some text to be hidden', '<span class="hidden"></span>');
})

.hidden {
    display:none;
}