今天我有一个要求,希望在输入框中搜索关键字的时候,包含关键字的区块能够显示出来!而不是仅仅把关键字变成红色。目前进展:但目前我只能将关键字变为红色,遇到的困难:如何让没有关键词的片段消失,只有包含关键词的内容出现,我在这里遇到了困难,尝试了3个多小时,还是不知道如何实现,希望能得到大家的帮助,谢谢,下面的图片是我搜索关键词后所期待看到的。
$(function() {
$("#js-search").on('click', function() {
let keyword = $("#keyWord").val()
$("p").each(function(index, el) {
if (el.innerText.includes(keyword)) {
el.innerText = el.innerText.replace(keyword, `<span class="red">${keyword}</span>`)
}
$(this).html(el.innerText);
});
});
});
.red {
color: red;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<input id="keyWord" type="text"><button id="js-search">search</button>
<ul>
<li>
<h1>about giving back</h1>
<p>This is the content of the answer about giving back</p>
</li>
<li>
<h1>Credit Card Payment Issues</h1>
<p>Credit card payment question content</p>
</li>
<li>
<h1>return the goods</h1>
<p>Content related to return issues</p>
</li>
<li>
<h1>register</h1>
<p>How to register as a member</p>
</li>
</ul>
3条答案
按热度按时间cqoc49vn1#
这将解决您的问题,它隐藏父元素,如果它不包含您搜索的单词,否则它将显示
bhmjp9jg2#
这很简单,你只需要隐藏与你的关键字不匹配的元素的父元素。
就像这样:
taor4pac3#
你必须隐藏和显示父母: