我有一个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');
,但这并没有帮助。
有什么建议吗?答案非常感谢。谢谢。
答案 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;
}