我试图在网页上实施搜索算法。
我有一个包含订单的表,每行都有一个订单,其中有一个唯一的ID。
每行<tr>
都设置了此ID:
<tr class="searchable" id="bla_1">1</tr>
<tr class="searchable" id="bla_2">2</tr>
<tr class="searchable" id="notbla_3">3</tr>
<tr class="searchable" id="not_4">4</tr>
我想隐藏类搜索的所有元素,这些元素与搜索字符串不同。最好不要只看开头。所以在上面的例子中,如果我的搜索字符串是&#34; bla&#34;它会显示第1,2和3行。
我还希望能够在其他容器上使用相同的功能,例如div:
<div class="searchable" id="bla_1">1</div>
<div class="searchable" id="bla_2">2</div>
<div class="searchable" id="notbla_3">3</div>
<div class="searchable" id="not_4">4</div>
我假设我需要某种foreach循环,但到目前为止我还没有找到如何去做这件事。
答案 0 :(得分:3)
试试这个
var search="bla";
$('.searchable').hide();
$('.searchable[id*="' + search + '"]').show();
答案 1 :(得分:2)
您想要使用属性&#39;包含&#39;选择器:
$('.searchable[id*="' + searchString + '"]').show();
其中searchString
是变量字符串,等于您要搜索的字符串。
答案 2 :(得分:2)
var search; //holds the value
if(search == ""){
$('.searchable').show();
}else{
$('.searchable').hide();
$('.searchable[id*="' + search + '"]').show();
}
答案 3 :(得分:1)
// Hide all elements containing bla in the id
$('.searchable[id*="bla"]').hide();
// Hide all elements not containing bla in the id
$('.searchable:not([id*="bla"])').hide();
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="searchable" id="bla_1">1</div>
<div class="searchable" id="bla_2">2</div>
<div class="searchable" id="notbla_3">3</div>
<div class="searchable" id="not_4">4</div>
&#13;