jquery使用filter过滤,错在什么地方?

$(".zmtitle").filter(function(){return$(this).attr("data-type").indexOf(searchVal)!=-... $(".zmtitle").filter(function () {
return $(this).attr("data-type").indexOf(searchVal) != -1;
}).show();
展开
 我来答
呆萌小咖77
2016-10-12 · TA获得超过797个赞
知道小有建树答主
回答量:813
采纳率:96%
帮助的人:158万
展开全部
最近发现了jquery的.filter()方法,这真是一个很强大的方法,最强大之处在于,他可以接受一个函数作为参数,然后根据函数的返回值判断,如果返回值是true,这个元素将被保留,如果返回值是false,这个元素将被剔除。这就是jquery选择器的过滤器。

空说无用,我们展示一下

复制代码代码如下:

<body>
<p>你好啊,今天及多大了啊</p>
<p><span>为什么要告诉你</span></p>
</body>

如果我们要选择有一个<span>子元素的<p>元素,平常我都是这么写的

复制代码代码如下:

$("p>span").parent();

现在借助于.filter()我们可以写成这个样子:

复制代码代码如下:

$("p").filter(function(index){
return $(this).find("span").size();
});

虽然看起来有些麻烦,但是他提供了我们一种极其强大的自定义查找元素的功能,我们可以传递一个函数,然后借助jquery的隐式迭代,来实现查找。
308xiaobao
高粉答主

2016-10-12 · 每个回答都超有意思的
知道大有可为答主
回答量:2.6万
采纳率:95%
帮助的人:2777万
展开全部
你给标签增加data-type属性,不给它属性值吗?你对这个标签获取值才indexOf的吧。
$(this).attr("data-type","").val().indexOf(searchVal) != -1;
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式