Javascript 使用jQuery按标签中的内容筛选标签
我想在标签之间搜索,只显示符合要求的标签。因此,当您加载页面时,所有标记都是可见的。当您在搜索框中键入时,我想按标签中的标题过滤标签 $'search'。在'keyup'上,函数E{ var search=$this.val.toLowerCase; $'content'.children.childrenp.eachfunction{ $this.parent.parent[搜索和$this.text.toLowerCase.match'^'+搜索?'show':'hide']; }; }; 约翰 其他内容。Javascript 使用jQuery按标签中的内容筛选标签,javascript,jquery,html,Javascript,Jquery,Html,我想在标签之间搜索,只显示符合要求的标签。因此,当您加载页面时,所有标记都是可见的。当您在搜索框中键入时,我想按标签中的标题过滤标签 $'search'。在'keyup'上,函数E{ var search=$this.val.toLowerCase; $'content'.children.childrenp.eachfunction{ $this.parent.parent[搜索和$this.text.toLowerCase.match'^'+搜索?'show':'hide']; }; };
Jenny
其他内容。Jane
其他内容。杰克
其他内容。要实现这一点,您可以使用过滤器查找不符合搜索要求的.title元素,然后隐藏其父.box。但是请注意,对于不区分大小写的搜索,您需要使用自己的逻辑扩展:jQuery运算符,该逻辑是:contains的变体,类似于: jQuery.expr[':']['contains-insensitive']=functiona,i,m{ 返回jQuerya.text.toUpperCase.indexOfm[3]。toUpperCase>=0; }; 变量$box=$'.box'; $“搜索”。在“输入”上,函数E{ $box.show; $'.title.filter`:not:包含不敏感的“${this.value}”`.closest.box.hide; }; 约翰 其他内容。
Jenny
其他内容。Jane
其他内容。杰克
其他内容。要实现这一点,您可以使用过滤器查找不符合搜索要求的.title元素,然后隐藏其父.box。但是请注意,对于不区分大小写的搜索,您需要使用自己的逻辑扩展:jQuery运算符,该逻辑是:contains的变体,类似于: jQuery.expr[':']['contains-insensitive']=functiona,i,m{ 返回jQuerya.text.toUpperCase.indexOfm[3]。toUpperCase>=0; }; 变量$box=$'.box'; $“搜索”。在“输入”上,函数E{ $box.show; $'.title.filter`:not:包含不敏感的“${this.value}”`.closest.box.hide; }; 约翰 其他内容。
Jenny
其他内容。Jane
其他内容。杰克
其他内容。 内容以ID为内容的元素为目标。您已将类内容分配给div,其目标应为.content $'search'。在'keyup'上,函数E{ var search=$this.val.toLowerCase; $'.content'.children.childrenp.eachfunction{ $this.parent.parent[搜索和$this.text.toLowerCase.match'^'+搜索?'show':'hide']; }; }; 约翰 其他内容。Jenny
其他内容。Jane
其他内容。杰克
其他内容。 内容以ID为内容的元素为目标。您已将类内容分配给div,其目标应为.content $'search'。在'keyup'上,函数E{ var search=$this.val.toLowerCase; $'.content'.children.childrenp.eachfunction{ $this.parent.parent[搜索和$this.text.toLowerCase.match'^'+搜索?'show':'hide']; }; }; 约翰 其他内容。Jenny
其他内容。Jane
其他内容。杰克
其他内容。以下是工作代码:
以下是工作代码:
您正在尝试动态调用对象上的方法吗?使用此重载.toggle:您有一个类型错误class=content和$'content'replace.text,以及其他人指出的$.attrtitle和$.content。您正在尝试动态调用对象上的方法吗?使用此重载.toggle:您有一个类型错误class=content和$'content'replace.text正如其他人指出的那样,$.content这并不是我想要做的。我只想通过标题和其他内容进行过滤。这并不是我想要做的。我只想按标题和其他内容过滤。
$('#search').on('keyup', function(e) {
var search = $(this).val().toLowerCase();
$('.content').children().find("p").each(function() {console.log($(this).text());
$(this).parent().parent()[search && $(this).text().toLowerCase().match('^' + search) ? 'show' : 'hide']();
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="text" id="search" />
<div class="content">
<a>
<div class="box">
<img>
<p class="title">John</p>
Other content.
</div>
</a>
<a>
<div class="box">
<img>
<p class="title">Jenny</p>
Other content.
</div>
</a>
<a>
<div class="box">
<img>
<p class="title">Jane</p>
Other content.
</div>
</a>
<a>
<div class="box">
<img>
<p class="title">Jack</p>
Other content.
</div>
</a>
</div>