当前位置:  编程技术>WEB前端

jQuery 过滤方法filter()选择具有特殊属性的元素

    来源: 互联网  发布时间:2014-08-25

    本文导语:  现在有这样一种需求,需要选出所有有背景图片的元素. 这个问题有点棘手.我们无法使用选择表达式来完成这个问题了. 使用jQuery的DOM过滤方法filter(),可以根据函数中表达的任何条件选择元素. jQuery中的过滤器方法允许传递一个...

现在有这样一种需求,需要选出所有有背景图片的元素.
这个问题有点棘手.我们无法使用选择表达式来完成这个问题了.
使用jQuery的DOM过滤方法filter(),可以根据函数中表达的任何条件选择元素.

jQuery中的过滤器方法允许传递一个字符串(也就是选择器表达式)作为参数.
或者传递的是一个函数.它的返回值将定义某个元素是否被选中.
传递的函数将对当前选择集中的每个元素运行.
当函数返回假时,对应的函数就从选择集中被删除掉.每当返回值为真的时候,对应的元素
不受影响.
代码如下:

jQuery('*').filter(function(){
return !!jQuery(this).css('background');
});

上述代码选择所有具有背景图片的元素.
初始集合是所有元素(*).然后以一个函数为参数调用filter().
这个函数在每个集合上进行是否有属性background属性的判断,
如果有,则保留.否则,则在结果集中删除这个元素.

你所看到的!! 是javascript中间任何undefined ,空类型,当然还有false.
如果函数调用返回的是这些值,那么函数返回false,从而在集合中删除

没有background属性的元素.
实际上,!!并不是必要的.因为jQuery将把这些返回值转化为Boolean类型.但是保留仍然是一个好的主意.
这样任何人看到你的代码的时候,都能绝对肯定你的意图.(这有助于代码的可读性).

在传递个filter()的函数中,可以通过this关键字引用当前元素.
将它包含在jQuery函数中就变成了一个jQuery对象了.
this //常规的元素对象.
jQuery(this) //jQuery对象.
下面是激发你想象力的一些例子.
代码如下:

jQuery('div').filter(function(){
var width = jQuery(this).width;
return width >100 && widht < 200;
});
//返回子元素有10个或者20个的元素.
jQuery('*').filter(function(){
var children = jQuery(this).childern().length;
return children ===10 || children ===20;

});

下面是一个代码例子:判断有背景颜色的元素,并将它们的背景颜色全部改为黑色。
代码如下:





.c1{
background-color: yellow;
}
.c2{
background-color: green;
}
p{
background-color: pink;
}
h3{
background-color: gray;
}



Bye Bye Beautiful

Nothing but the girl

The Lazy song


If I die young
New soul


jQuery(document).ready(function($) {
var ret = $('*').filter(function(index) {
return !$(this).css('background-color');
});
$.each(ret, function(index, val) {
$(val).css('background-color','black');
});
});




    
 
 

您可能感兴趣的文章:

  • jQuery表格过滤插件 uiTableFilter
  • jquery代码-如何使用多个属性来进行过滤
  • jquery代码-如何创建嵌套的过滤器
  • Jquery 过滤器(first,last,not,even,odd)用法举例
  • jquery数组过滤筛选方法grep()简介
  • jQuery过滤选择器:not()方法使用介绍
  • Jquery 过滤器(first,last,not,even,odd)的使用
  • jquery通过select列表选择框对表格数据进行过滤示例
  • jquery选择器之内容过滤选择器详解
  • jquery选择器之属性过滤选择器
  • jquery中的过滤操作详细解析
  • jquery选择器之层级过滤选择器详解
  • jquery选择器之属性过滤选择器详解
  • jquery选择器之基本过滤选择器详解
  • JQuery 基础过滤选择器的例子
  • jquery修改属性值实例代码(设置属性值)
  • jQuery学习笔记之jQuery原型属性和方法
  • 使用jQuery设置disabled属性与移除disabled属性
  • JS与jquery自定义属性用法
  • JQuery 判断某个属性是否存在hasAttr用法
  • jQuery获得内容与属性方法
  • jQuery获得内容和属性示例代码
  • jQuery获得内容和属性方法及示例
  • jquery easyUI创建分组属性编辑器
  • jquery设置input中disabled属性
  • jQuery 获取/设置/删除DOM元素的属性以a元素为例
  • jQuery元素属性attr设置多个键值的例子
  • jquery根据name属性查找示例
  • jquery控制css的display属性(显示与隐藏)
  • JQuery设置input属性(disabled、enabled)
  • jquery 选择块与改变属性值的实现方法
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • jquery选择器之属性过滤选择器 iis7站长之家
  • jquery判断元素的子元素是否存在的示例代码
  • jquery怎么判断元素的子元素是否存在
  • jquery获取一个元素下面相同子元素的个数代码
  • jquery中子元素和后代元素的区别示例介绍
  • jQuery 滑动方法slideDown向下滑动元素
  • JQuery元素控制方法汇总
  • 使用jquery prev()方法找到同级的前一个元素
  • jQuery each循环获取与搜索元素
  • jquery获取第几个元素方法示例 jquery选择器
  • jQuery如何获取与设置表单元素
  • jquery怎么判断html元素是否存在
  • JQuery实现元素屏幕居中显示的代码
  • jQuery 元素缩放插件 Zoomooz
  • jQuery元素覆盖 Ezoverlay
  • jQuery元素滚动插件 simplyScroll
  • jQuery 追加元素的方法如append、prepend、before
  • jquery控制css元素的display(显示与隐藏)属性
  • jquery控制css display属性(控制元素显示与隐藏)
  • jquery、js调用iframe父窗口与子窗口元素的方法整理
  • 通过javascript库JQuery实现页面跳转功能代码
  • jQuery鼠标动画插件 jquery-ahover
  • jQuery概述,代码举例及最新版下载
  • jQuery向导插件 Jquery Wizard Plugin
  • Jquery操作html复选框checkbox:全选,全不选和反选
  • jQuery圆角插件 jQuery Corners
  • struts+spring+hibernate+jquery实现分页功能的几个基本类介绍(异步加载)
  • jQuery相册插件 jQuery.popeye
  • jQuery UI组件 jQuery UI
  • jQuery右键菜单插件 jQuery ContextMenu
  • jQuery分页插件 Pagination jQuery Plugin


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3