如果你有像:
这样的HTML<div class="text">Good Stuff Hide Me</div>
<div class="text">Great Stuff Hide Me</div>
<div class="text">Best Stuff Hide Me</div>
并希望在div.text的每个实例中隐藏“隐藏我”,这样你就可以了
好东西
很棒的东西
最好的东西
你会如何用jQuery做到这一点?
此$("div:contains('Hide Me')").hide();
隐藏整个字符串。如何隔离要隐藏的文本?
答案 0 :(得分:8)
如果您想要实际删除文字,请使用:
$('div.text').text(function (i, t) {
return t.replace(' Hide Me', '');
})
<强> jsFiddle example 强>
要隐藏它,请使用:
$('div.text').html(function (i, t) {
return t.replace('Hide Me', '<span class="hidden">Hide Me</span>');
})
使用CSS .hidden {
display:none;
}
<强> jsFiddle example 强>
答案 1 :(得分:1)
除了useSticks之外,另一个选项是执行j08691建议但是要使用$('.hidden').contents().unwrap()
(或本机替代),如this answer所示。这样,您可以根据用户输入的内容动态地告诉它您要隐藏/取消隐藏的内容。
答案 2 :(得分:-1)
j08691有它,但是如果你要将它切换到一个跨度来隐藏它,它意味着你想把它带回来。你最好将自己的文本分成2个标签,这样你就可以更干净地搜索它,并在以后更轻松地将其恢复。
<div class="text">Good Stuff <span class="hideMe">Hide Me</span></div>
<div class="text">Great Stuff <span class="hideMe">Hide Me</span></div>
<div class="text">Best Stuff <span class="hideMe">Hide Me</span></div>
所以你有
$(".hideMe").hide()
$(".hideMe").show()