`
vateran
  • 浏览: 24561 次
  • 性别: Icon_minigender_1
  • 来自: 大连
社区版块
存档分类
最新评论

jquery中的has, filter, find的区别

阅读更多

 

 has(selector选择器或DOM元素)   将匹配元素集合根据选择器或DOM元素为条件,检索该条件在每个元素的后代中是否存在,将符合条件的的元素构成新的结果集。

下面举一个例子:

复制代码 代码如下:

<ul>
  <li>list item 1</li>
  <li>list item 2
    <ul>
      <li><div><span>a</span></div>list item 2-a</li>
      <li>list item 2-b</li>
    </ul>
  </li>
  <li>list item 3</li>
  <li>list item 4</li>
</ul>

 

复制代码 代码如下:

$('li').has('span').css('background-color', 'red');


得到的结果如下:

这个例子可以看出:在匹配li时,要检查该li的后代元素中是否包含了span,如果包含,则该元素包含在结果中。如果不包含,那么就排除。

注意:has只起判断作用。以has参数中的选择器或DOM元素做为条件,检测原结果集中的元素是否符合。去掉不符合的元素,将符合的元素构成一个新结果集。

这与find()方法不同,find()方法是获得在当前结果集中每个元素的后代。参数(选择器、jquery集合或DOM元素)做为过滤条件,满足过滤条件的则保留,保留的是后代。而has()方法中,参数只做为条件,符合条件的,它的前元素加入新的结果集,而不是后代加入新的结果集。

 

$('li').find('span').css('background-color', 'red');

结果为:

 


filter()方法与has()方法中的参数,都是过滤条件。不同的是filter()方法,条件作用于自身;has()方法条件是作用于它的后代元素中。

以下面的例子为例:filter()方法中,条件作用于自身li,has()方法条件是作用于li的后代元素

复制代码 代码如下:

<ul>
  <li class="a">list item 1</li>
  <li>list item 2
    <ul>
      <li><div><span>a</span></div>list item 2-a</li>
      <li>list item 2-b</li>
    </ul>
  </li>
  <li>list item 3</li>
  <li>list item 4</li>
</ul>

 

复制代码 代码如下:

$('li').filter('.a').css('background-color', 'red');


结果为:

 

 

 

转至:http://www.jquerycn.cn/a_5552

分享到:
评论

相关推荐

    基于jquery的has()方法以及与find()方法以及filter()方法的区别详解

    JQuery提供了丰富的方法来操作DOM元素,其中has()、find()和filter()是常用于选择和过滤元素的三个方法,它们各自有着不同的特点和用途。 首先,我们来看has()方法。这个方法主要用来检查指定元素的后代中是否存在...

    JQuery新版中文手册

    JQuery开发手册 jQuery 核心函数 jQuery([sel,[context]]) jQuery(html,[ownerDoc]) jQuery(callback) jQuery.holdReady(hold)1.6+ jQuery 对象访问 each(callback) size() length selector context get...

    jQuery核心源码中文注释解读

    此外,jQuery还包含一系列内置的方法,如`init`、`each`、`find`等,它们通常在`jQuery.extend`中定义,然后被原型链上的方法调用。 ```javascript jQuery.extend({ init: function() { ... }, each: function...

    jQuery中文入门指南

    - **jQuery 对象的方法**: 包括 `filter()`, `has()`, `not()` 等方法,用于进一步筛选元素集合。 - **事件处理**: 可以使用 `.on()` 方法为元素绑定多种类型的事件,例如: ```javascript $("button").on("click...

    jQuery编程思想.docx

    例如,`has()` 可以选择包含特定子元素的元素,`not()` 用于排除匹配的选择,`filter()` 可以根据指定条件筛选,而 `first()` 和 `eq()` 则分别用于选择第一个元素或指定索引的元素。DOM 树的移动方法如 `next()`、`...

    非常经典的35个Jquery应用实例

    * 使用 JQuery 特有的表达式:$('a:first') 选择网页中第一个 a 元素,$('tr:odd') 选择表格的奇数行,$('#myForm :input') 选择表单中的 input 元素,等。 二、改变结果集 如果选中多个元素,JQuery 提供过滤器,...

    jQuery学习

    通过将 CSS 选择器或 jQuery 特有的选择器放入构造函数 `jQuery()` 或简写的 `$` 中,可以轻松获取页面上的元素。 **1. 使用 CSS 选择器** - **选择整个文档对象**: `$(document)` - **选择 ID 为 myId 的元素**: ...

    jQuery 1.5 API 中文版

    $.jQuery( selector [, context] ), .jQuery( element ), .jQuery( elementArray ), .jQuery( jQueryObject ), .jQuery( ) $.jQuery( html [, ownerDocument] ), .jQuery( html, props ) $.jQuery( fn ) jQuery ...

    jQuery详细教程

    您也许已经注意到在我们的实例中的所有 jQuery 函数位于一个 document ready 函数中: $(document).ready(function(){ --- jQuery functions go here ---- }); 这是为了防止文档在完全加载(就绪)之前运行 jQuery...

    jQuery常语句大全

    根据统计数据,在全球范围内排名前一百万的网站中,约有 46% 的网站采用了 jQuery。这种普及程度使其成为 Web 开发者必须掌握的一项技能。本文档旨在提供一份全面的 jQuery 常用语句指南,涵盖选择器、元素操作以及...

    Jquery 1.3 简体中文手册

    find(expr) next([expr]) nextAll([expr]) offsetParent() parent([expr]) parents([expr]) prev([expr]) prevAll([expr]) siblings([expr]) 串联 andSelf() end() 事件 页面载入 ready(fn) 事件处理 ...

    JQuery 1.3 中文参考手册

    find(expr) next([expr]) nextAll([expr]) offsetParent() parent([expr]) parents([expr]) prev([expr]) prevAll([expr]) siblings([expr]) 串联 andSelf() end() 事件 页面载入 ready(fn) 事件处理 ...

    jQuery设计思想

    通过将 CSS 选择器或 jQuery 特有的选择器放入 jQuery 构造函数 `jQuery()` 或其别名 `$` 中,可以快速定位页面中的元素。 **CSS 选择器示例**: - `$(document)`:选择整个文档对象。 - `$('#myId')`:选择 ID 为...

    jquery 使用方法

    1. **过滤器**:`.has()` 选择包含特定元素的元素,`.not()` 排除特定类或属性的元素,`.filter()` 选择符合特定条件的元素,`.first()` 和 `.eq(index)` 选取特定位置的元素。 2. **DOM 树移动**:`.next()` 选择...

    jQuery是目前使用最广泛的javascript函数库。这个是很好的学习资料

    jQuery是JavaScript领域中广泛使用的一个库,其在网页开发中占据着重要地位。根据描述,jQuery因其易用性和丰富的功能而备受青睐,尤其在前100万个网站中,有46%选择了jQuery,这足以证明其流行度。微软也将jQuery视...

    概述jQuery的元素筛选

    在jQuery库中,元素筛选是核心功能之一,它允许开发者高效地定位和操作网页上的DOM元素。本篇文章将深入探讨jQuery中的元素筛选方法,通过实例和详细的解释来帮助你理解和运用这些工具。 首先,我们来看`eq()`方法...

    jquery 使用简明教程

    《jQuery使用简明教程》 jQuery是一个强大的JavaScript库,它简化了HTML文档遍历、事件处理、动画设计和Ajax交互。本教程将介绍jQuery的基本用法,包括选择网页元素、改变结果集、链式操作、元素操作以及元素的移动...

    关于jquery.validate.js 相同name的多个元素只能验证第一个元素的解决办法

    ### 关于jQuery Validate 插件中相同name的多个元素只能验证第一个元素的问题及解决方法 #### 问题背景 在Web开发中,表单验证是非常重要的一环,它能够确保用户输入的数据符合预期的要求,从而避免数据错误或者...

Global site tag (gtag.js) - Google Analytics