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

Javascript JQuery删除id不包含字符串的元素,javascript,jquery,html,search,Javascript,Jquery,Html,Search,我试图在页面上实现一个搜索算法 我有一个带有订单的表,每行有一个订单,它有一个唯一的ID 每行的都设置了此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="n

我试图在页面上实现一个搜索算法

我有一个带有订单的表,每行有一个订单,它有一个唯一的ID

每行的都设置了此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>
我想隐藏类searchable的所有元素,它们不同于搜索字符串。最好不要只看开头。所以在上面的例子中,如果我的搜索字符串是bla,它将显示第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循环,但到目前为止,我还无法找到如何执行此操作。

是否要使用属性“contains”选择器:

$('.searchable[id*="' + searchString + '"]').show();

其中searchString是一个变量字符串,它等于要搜索的字符串

要使用属性“包含”选择器:

$('.searchable[id*="' + searchString + '"]').show();
其中searchString是一个变量字符串,它等于要搜索的字符串

试试这个

var search="bla";
$('.searchable').hide();
$('.searchable[id*="' + search + '"]').show();
试试这个

var search="bla";
$('.searchable').hide();
$('.searchable[id*="' + search + '"]').show();
//隐藏id中包含bla的所有元素 $'.searchable[id*=bla]'.hide; //隐藏id中不包含bla的所有元素 $'.searchable:not[id*=bla]'.hide; 1. 2. 3. 4 //隐藏id中包含bla的所有元素 $'.searchable[id*=bla]'.hide; //隐藏id中不包含bla的所有元素 $'.searchable:not[id*=bla]'.hide; 1. 2. 3.
4$.searchable.hide$[id*='bla'].show;作为旁注,ID属性应该包含特定于元素的任何数据,如果您的ID没有任何其他含义,则最好使用data-*属性,例如,如果不使用uri中的hash对其进行标记,则只需旁注:ID在页面范围中必须是唯一的。如果将示例的两段代码合并到一个页面中,则html将无效。编辑上一条注释:ID属性不应带来任何内容data@p.streef您应该使用例如:data search=bla_1$.searchable.hide$[id*='bla'].show;作为旁注,ID属性应该包含特定于元素的任何数据,如果您的ID没有任何其他含义,则最好使用data-*属性,例如,如果不使用uri中的hash对其进行标记,则只需旁注:ID在页面范围中必须是唯一的。如果将示例的两段代码合并到一个页面中,则html将无效。编辑上一条注释:ID属性不应带来任何内容data@p.streef你应该使用例如:data search=bla_1这很有效!如果你添加了一个过滤器来检查search==你可以很容易地显示一个空字符串的所有内容。这非常有效!如果您添加了一个检查search==的过滤器,您可以轻松地显示空字符串的所有内容。