如今有这样一种需求,须要选出全部有背景图片的元素.
这个问题有点棘手.我们无法使用选择表达式来完毕这个问题了.
使用jQuery的DOM过滤方法filter(),能够依据函数中表达的不论什么条件选择元素.

jQuery中的过滤器方法同意传递一个字符串(也就是选择器表达式)作为參数.
或者传递的是一个函数.它的返回值将定义某个元素是否被选中.
传递的函数将对当前选择集中的每一个元素执行.
当函数返回假时,相应的函数就从选择集中被删除掉.每当返回值为真的时候,相应的元素
不受影响.
jQuery('*').filter(function(){
return !!jQuery(this).css('background');
});

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

你所示!! 是javascript中间不论什么undefined ,空类型,当然还有false.
假设函数调用返回的是这些值,那么函数返回false,从而在集合中删除
没有background属性的元素.
实际上,!!并非必要的.由于jQuery将把这些返回值转化为Boolean类型.可是保留仍然是一个好的主意.
这样不论什么人看到你的代码的时候,都能绝对肯定你的意图.(这有助于代码的可读性).

在传递个filter()的函数中,能够通过thiskeyword引用当前元素.
将它包括在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;

});

以下是一个代码样例:推断有背景颜色的元素。并将它们的背景颜色全部改为黑色。

<html>
<head>
<title></title>
<style type="text/css">
.c1{
background-color: yellow;
}
.c2{
background-color: green;
}
p{
background-color: pink;
}
h3{
background-color: gray;
}
</style>
</head>
<body>
<div class="c1">Bye Bye Beautiful</div>
<div class="c2">Nothing but the girl</div>
<p>The Lazy song</p>
<h2>If I die young</h2>
<h3>New soul</h3>
<script type="text/javascript" src="jquery.2.0.3.js"></script>
<script type="text/javascript">
jQuery(document).ready(function($) {
var ret = $('*').filter(function(index) {
return !$(this).css('background-color');
});
$.each(ret, function(index, val) {
$(val).css('background-color','black');
});
});
</script>
</body>
</html>

Best Wishes.

最新文章

  1. 用uniq来处理文件重复数据--交集,差集,计数等(转)
  2. Win7系统开放C盘下文件夹Everyone权限
  3. MySQL数据库INSERT、UPDATE、DELETE以及REPLACE语句的用法详解
  4. iOS CoreMotion框架(传感器)
  5. 【BZOJ 1185】 凸包+旋转卡壳
  6. ThreadLocal 笔记
  7. 【清橙A1084】【FFT】快速傅里叶变换
  8. java 截取字符串 拆分字符串
  9. [置顶] Guava学习之Immutable集合
  10. 老李分享:开发python的unittest结果输出样式
  11. 致命错误:mysql/cli 目录 #include &quot;mysql/client_plugin.h&quot;
  12. WPF中,多key值绑定问题,一个key绑定一个界面上的对象
  13. WPF 禁用TextBox的触摸后自动弹出虚拟键盘
  14. history program(language)
  15. webpack 配置别名,解决 import 时路径查找麻烦的问题
  16. 三.HashMap原理及实现学习总结
  17. webstorm激活方法
  18. CAD:计算三角形的外接圆圆心
  19. 多线程系列(2)线程池ThreadPool
  20. 【转】一些linux基础命令

热门文章

  1. 【sklearn】中文文档
  2. MySQL/MariaDB数据类型
  3. jsp 安全
  4. Connet Scanning
  5. jfinal undertow web.xml
  6. 03.Regression
  7. Selenium的webdriver的常用方法,鼠标事件
  8. [Mongo]Linux上启动与关闭MongoDB
  9. 使用163.com邮箱发送邮件
  10. Android ble蓝牙问题