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;

});

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

<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.

jQuery 选择具有特殊属性的元素,布布扣,bubuko.com

时间: 2024-08-02 11:04:27

jQuery 选择具有特殊属性的元素的相关文章

JQUERY选择和操作DOM元素(利用正则表达式的方法匹配字符串中的一部分)

1.匹配属性的开头 $("[attributeName^='value']"); 2.匹配属性的结尾 $("[attributeName$='value']"); 3.属性选择器总结 elem[attr] 选择具有attr属性的元素 elem[attr=val]选择具有attr属性且属性值与val值匹配的元素 elem[attr^=valu]选择具有attr属性且属性值以val值开头的元素 elem[attr$=val]选择具有attr属性且属性值以val值结尾的元

一步一步学习 JQuery (四) 过滤选择器:属性过滤选择器 &amp;&amp; 子元素过滤选择器 &amp;&amp; 表单过滤选择器

四.属性过滤选择器 属性过滤选择器的过滤规则是通过元素的属性来获取相应的元素 选取下列元素,改变其背景色为 # bbffaa 含有属性title 的div元素. 属性title值等于"test"的div元素. 属性title值不等于"test"的div元素(没有属性title的也将被选中). 属性title值 以"te"开始 的div元素. 属性title值 以"est"结束 的div元素. 属性title值 含有"

JQuery——选择元素

一.$()工厂函数 在Jquery中无论哪种类型的选择符,都要从一个$()开始,在这个函数接受CSS选择符作为参数,返回包含页面对应元素的Jquery对象. 基本的选择符: 选择符 CSS中 Jquery中 说明 标签名   P{} $('P') 取得文档中所有的段落 ID #some-id{} $('#some-id')  取得文档中ID为some-id的一个元素   类      .some-class{}   $('.some-class')  取得文档中类为some-class的所有元素

jQuery选择元素的方法大全

jQuery选择器其实是一个有些地方比较费解的,如果没有经过多次实验的话,很难得出它的每个操作符到底是干什么的,很容易出错,经过 我的多次测试,终于对一些比较难理解或容易出错的选择操作进行总结,既方便自己将来查询又方便初学者学习.如果哪里有不对的还望大家帮我指出来,这里是一 个相互学习的地方. 1. 先说说通过位置选择的几个操作: :first:默认情况下是相对整个页面来说的第一个,如:li:first表示整个页面的第一个li元素,而ul li:first表示整个页面的第一个li元素,并且是在u

jQuery获取被被点击元素的id属性值

jQuery获取被被点击元素的id属性值:有时候可能需要获取被点击元素的一些信息,本章就以id属性为例子,进行演示一下,当然在实际应用中可能没有如此的简单,不过复杂的功能都是由小的功能组合而成的,下面通过实例代码对此做一下简单介绍.代码如下: $(document).click(function (e){ var v_id=e.target.id; } ) 相关阅读:1.click事件而已参阅jQuery的click事件一章节. 2.target属性可以参阅jQuery的event.target

jQuery实战:创建元素包装集,选择将被操作的元素

看完你能学到什么? 1.利用基本CSS选择器 2.利用子选择器.容器选择器和特性选择器 3.通过位置选择 4.利用自定义jQuery选择器 几乎使用任何jQuery方法的时候,我们必须做的第一件事,就是选择将被操作的页面元素.有时,想要选择的元素集合是易于描述的,例如"页面上的所有链接元素".有时,需要比较复杂的描述,比如"拥有CSS类leftchild的偶数的段落 ". 庆幸的是,jQuery提供了健壮的选择器语法,让我们能轻松,优雅和简明地指定几乎人和元素集合.

js+jquery动态设置/增加/删除/获取元素属性的两种方法集锦对比(动态onclick属性设置+动态title设置)

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html140/strict.dtd"> <html> <head> <meta http-equiv="content-type" content="text/html; charset=utf-8"/> <title>

jquery属性选择器(匹配具有指定属性的元素)

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>属性选择器</title> &

jQuery - 获取内容和属性:操作 HTML 元素和属性的强大方法

jQuery - 获取内容和属性 jQuery 拥有可操作 HTML 元素和属性的强大方法. jQuery DOM 操作 jQuery 中非常重要的部分,就是操作 DOM 的能力. jQuery 提供一系列与 DOM 相关的方法,这使访问和操作元素和属性变得很容易. 获得内容 - text().html() 以及 val() 三个简单实用的用于 DOM 操作的 jQuery 方法: text() - 设置或返回所选元素的文本内容 html() - 设置或返回所选元素的内容(包括 HTML 标记)