繁体   English   中英

JavaScript replace方法禁用换行符

[英]JavaScript replace method disables line breaks

我有一个ID一个div #container ,这个div包含几个字符串/线。 我使用以下代码在该div中隐藏特定的字符串。

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

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

如何隐藏该特定字符串而不禁用换行符?

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

有什么建议么? 答案是极大的赞赏。 谢谢。

您需要进行搜索并在单个文本节点上进行替换,以免破坏其他子元素(如<br><p>标记)。

如果文本节点是#container对象的直接子代,则可以这样进行:

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

如果文本节点是较深的子级,那么只有在向我们展示您正在使用的实际HTML时,我们才能提供简单的答案。

您可以使用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;
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM