JQuery删除id不包含字符串的元素

时间:2016-01-14 14:19:18

标签: javascript jquery html search

我试图在网页上实施搜索算法。

我有一个包含订单的表,每行都有一个订单,其中有一个唯一的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循环,但到目前为止我还没有找到如何去做这件事。

4 个答案:

答案 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)

&#13;
&#13;
// 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;
&#13;
&#13;