你好,我正在创建一个FAQ页面,需要使用JavaScript进行过滤,如下所示:
参考资料:https://makitweb.com/jquery-search-text-in-the-element-with-contains-selector/
$(document).ready(function () {
$('#filter').keyup(function () {
// Search text
var text = $(this).val().toLowerCase();
var error = document.getElementById("error");
// Hide all content class element
$('.mobrog-ux-text').hide();
// Search
$('.mobrog-ux-text').each(function () {
if ($(this).text().toLowerCase().indexOf("" + text + "") != -1) {
$(this).closest('.mobrog-ux-text').show();
setTimeout(
function () {
var x = document.getElementById("myDIV");
x.style.display = "none";
}, 4000);
error.style.display = "none";
}
else if($(this).text().toLowerCase().indexOf("" + text + "") == 0) {
error.style.display = "block";
}
});
});
});
<form align="center">
<input id="filter" onkeydown="keydownFunction()" oninput="keyPress(this.value)" class="searchfield" type="text"
name="search" placeholder="Search the help center">
</form>
<div style="color: white;padding : 10px" align="center"></div>
</div>
<div class="content2">
<h2>Frequently asked questions</h2>
<div id"pag"="id" pag""="pag" ""></div>
<div align="center" class="col-10">
<div class="mobrog-tab-container maxwidth">
<div id="myDIV" class="loader"></div>
<div class="error" id="error"> No result found!!</div>
<div id="results" class="mobrog-ux-vertical-tabs">
<div id="tar" class="mobrog-tabs">
<button data-tab="tab1" class="active">sample tab button?<span></span></button>
<button class="empty"></button>
</div>
<div class="mobrog-maincontent">
<div data-tab="tab1" class="mobrog-tabcontent active">
<div class="mobrog-ux-text">
<button class="mobrog-accordion">sample button</button>
<div class="mobrog-panel">
<p>
sample text
</p>
</div>
</div>
这个方法可以实现过滤,但当筛选的单词没有在FAQ页面搜索的DIV列表中找到时,我想显示一条消息。
我尝试了下面的代码:
else if ($(this).text().toLowerCase().indexOf("" + text + "") == 0) {
//error message display
}
但是它不起作用了
(例如,当我键入一个在我的FAQ中不存在的单词时,我希望显示一个在
中的错误消息),反之亦然,当单词在我的FAQ页面中找到时)
方式类似于RegExp方法中的使用方式 使用输入过滤器在div上进行实时搜索
目前,当我键入可用和不可用的单词时,错误消息会出现
请问我该如何有效地显示过滤的单词是否已找到或未找到的消息
谢谢