我试图隐藏段落中的文字。问题是脚本找到文本并删除整个段落。我想只删除搜索到的文本。 Demo
<div class='article'>
<p>Text may refer to: Contents. 1 Computers and electronics; 2 Arts and entertainment; 3 See also. Text (journal), an academic journal of language, discourse, and...</p>
</div>
$(function() {
var foundin = $('.article p:contains("journal")');
$(foundin).hide();
});
答案 0 :(得分:4)
var foundin = $('.article p:contains("journal")');
foundin.text(foundin.text().replace(/journal/g, ""))
答案 1 :(得分:1)
$(function() {
var foundin = $('.article p:contains("journal")');
var html = foundin.html();
html = html.replace('journal', '<span class="hidden">journal</span>');
$(foundin).html(html);
});
和CSS
.hidden
{
display: none;
}
这样,通过更改.hidden
样式,您可以突出显示文本而不是隐藏它。该解决方案不会影响段落其余部分的标记。
答案 2 :(得分:1)
使用类
将文本换行到隐藏的跨度中$(function() {
var text = 'journal';
$('.article p').html(function(_,html) {
return html.replace(new RegExp('('+text+')','g'), '<span class="hidden" style="display:none">$1</span>')
});
});
再次显示你可以做到
$('.hidden').show();
答案 3 :(得分:1)
$(function() {
$('.article p:contains("journal")').each(function(){
$(this).html($(this).html().replace(/journal/g, ""))
});
});