[英]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.