简单案例:

$(function(){
$("td[id][id!='']").click(function(){
//你的逻辑
});
});

上述代码,有id且id不为空的td都会执行“你的逻辑”。

=======================转载=======================

1、eq()    筛选指定索引号的元素
2、first()  筛选出第一个匹配的元素
3、last()   筛选出最后一个匹配的元素
4、hasClass()  检查匹配的元素是否含有指定的类
5、filter()  筛选出与指定表达式匹配的元素集合
6、is()    检查元素是否参数里能匹配上的
7、map()
8、has()  筛选出包含指定子元素的元素
9、not()  排除能够被参数中匹配的元素
10、slice()    从指定索引开始,截取指定个数的元素
11、children()  筛选获取指定元素的资源
12、closest()   从当前元素开始,返回最先匹配到的符合条件的父元素
13、find()    从指定元素中查找子元素
14、next()     获取指定元素的下一个兄弟元素
15、nextAll()   获取其后的所有兄弟元素
16、nextUntil()  获取其后的元素,直到参数能匹配上的为止,不包括结束条件那个
17、offsetPosition()  返回第一个用于定位的祖先元素,即查找祖先元素中position为relative或absolute的元素。
18、parent()   获取指定元素的直接父元素
19、parents()   获取指定元素的所有祖先元素,一直到<body></body>
20、parentsUntil()  获取指定元素的祖先元素,知道参数里能匹配到的为止
21、prev()    获取指定元素的前一个兄弟元素
22、prevAll()   获取指定元素前面的所有兄弟元素
23、prevUntil()   获取指定元素前面的所有兄弟元素,直到参数里的条件能够匹配到的。 注意参数条件本身不会被匹配
24、siblings()   获取指定元素的兄弟元素,不分前后
25、add()    将选中的元素添加到jQuery对象集合中
26、andSelf()  将自身加到选中的jQuery集合中,以方便一次性操作
27、end()     将改变当前选择器选中的操作回退为上一个状态。
28、contents  未明白

************************* 筛选 ************************************

一、eq()  筛选指定索引号的元素

  语法:eq(index|-index)  索引号从0开始,若为负值,则从最后一个开始倒数,最后一个从-1开始

  $("p").eq(1);  //如果选择器改为  $("p").eq(-1),则我是第四个P会被选中
    
  <div>
    <p>我是第一个P</p>
    <p>我是第二个P</p>  //会被选中,索引值为1
    <p>我是第三个P</p>
    <p>我是第四个P</p>
  </div>  

二、first()  筛选出第一个匹配的元素

  语法:first()  此方法没有参数

  $("p").first();
    
  <div>
    <p>我是第一个P</p>  //我的索引值是0,我是第一个,我会被选中
    <p>我是第二个P</p>
    <p>我是第三个P</p>
    <p>我是第四个P</p>
  </div>  

三、last()  筛选出最后一个匹配的元素

   语法:last()  此方法没有参数

  $("p").last();
    
  <div>
    <p>我是第一个P</p>
    <p>我是第二个P</p>
    <p>我是第三个P</p>
    <p>我是第四个P</p> //我是最后一个,我会被选中
  </div>  

四、hasClass()  检查匹配的元素是否含有指定的类

  语法:hasClass(class)  class为类别名  //返回布尔值

   if($("p").hasClass("p2"))
  {
    alert("我里面含有class=p2的元素");  //会弹出,p里的确存在class="p2"的元素
  }
  <div>
    <p>我是第一个P</p>
    <p class="p2">我是第二个P</p>
    <p>我是第三个P</p>
    <p>我是第四个P</p>
  </div>  

五、filter()  筛选出与指定表达式匹配的元素集合

  语法:filter(expr|obj|ele|fn)  expr:匹配表达式|obj:jQuery对象,用于匹配现有元素 | DOM:用于匹配的DOM元素 | function返回值作为匹配条件

  $("p").filter(".p2");

  <div>
    <p>我是第一个P</p>
    <p class="p2">我是第二个P</p>  //我会被选中,我的class="p2"
    <p>我是第三个P</p>
    <p>我是第四个P</p>
  </div>  

六、is()    检查元素是否参数里能匹配上的

  语法:is(expr|obj|ele|fn)  expr:匹配表达式|obj:jQuery对象,用于匹配现有元素 | DOM:用于匹配的DOM元素 | function返回值作为匹配条件

  $($("p").first().is(".p2"))
  {
    alert("不会弹出,因为第一个P的class不等于p2"); 
  }   <div>
    <p>我是第一个P</p>
    <p class="p2">我是第二个P</p>  //我会被选中,我的class="p2"
    <p>我是第三个P</p>
    <p>我是第四个P</p>
  </div>  

七、map()

八、has()  筛选出包含指定子元素的元素

  语法:has(expr|ele)  expr:选择表达式 | DOM元素选择

  $("div").has("p");
 
  <div>                 //本div会被选中,因为该div含有p子元素
    <p>我是第一个P</p>
    <p class="p2">我是第二个P</p>
    <p>我是第三个P</p>
    <p>我是第四个P</p>
  </div>
  <div>
    <span>我是一个span</spam>
  </div>

九、not()  排除能够被参数中匹配的元素

   语法:not(expr|ele|fn)  expr:选择表达式 | DOM元素选择 | fn的作用还不清楚

  $("p").not(".p2");
 
  <div>
    <p>我是第一个P</p>        //会被选中,没有class=p2
    <p class="p2">我是第二个P</p>  //不会被选中,因为有class=p2被not(".p2")排除了
    <p>我是第三个P</p>        //会被选中,没有class=p2
    <p>我是第四个P</p>         //会被选中,没有class=p2
  </div>  

十、slice()  从指定索引开始,截取指定个数的元素

   语法:slice(start, [end])   start位置, end可选,结束位置,不包含结束位置那个。如果不指定,则匹配到最后一个。

  $("p").slice(1,3)
 
  <div>
    <p>我是第一个P</p>        //不会被选中,我索引为0
    <p class="p2">我是第二个P</p>  //会被选中,我索引为1
    <p>我是第三个P</p>        //会被选中,我索引为2
    <p>我是第四个P</p>         //不会被选中,虽然我的索引为3,但是不包括我
  </div>  

********************** 筛选 *********************************

十一、children()  筛选获取指定元素的资源

   语法:children(expr);  获取指定元素的资源,expr为子元素筛选条件

  $("div").children(".p2");
 
  <div>
    <p>我是第一个P</p>        //不会被选中,虽然我是div的子元素,但是我没class=p2
    <p class="p2">我是第二个P</p>  //会被选中,我既是p的子元素,又有class=p2
    <p>我是第三个P</p>        //不会被选中,虽然我是div的子元素,但是我没class=p2
    <p>我是第四个P</p>         //不会被选中,虽然我是div的子元素,但是我没class=p2
  </div>  

十二、closest()  从当前元素开始,返回最先匹配到的符合条件的父元素

  $("span").closest("p","div");
  <div>                   //不会被选中,被P抢了先机
    <p>我是第一个P            //P会被选中,因为P符合条件,而且是最先匹配到的,虽然div也符合条件了,但是div不是最先匹配到的。因此div不会被选中。
      <span>我是P里的span</span>
    </p>
  </div>  

十三、find()    从指定元素中查找子元素

   语法:find(expr|obj|ele)  expr:匹配表达式 | obj用于匹配的jQuery对象 | DOM元素

  $("div").find(".p2");    
  <div>
    <p>我是第一个P</p>        //不会被选中,虽然我是div的子元素,但是我没class=p2
    <p class="p2">我是第二个P</p>  //会被选中,我既是p的子元素,又有class=p2
    <p>我是第三个P</p>        //不会被选中,虽然我是div的子元素,但是我没class=p2
    <p>我是第四个P</p>         //不会被选中,虽然我是div的子元素,但是我没class=p2
  </div>  

十四、next()    获取指定元素的下一个兄弟元素

   语法:next(expr)  expr:可选,筛选条件,如果下一个兄弟元素不符合改条件,则返回空。

  $(".p2").next();    //如果筛选改为$(".p2").next(".p4")那选中的是哪个呢?答案是:没选中任何元素,因为虽然有个class=p4的P,但它不是.p2的下一个。      
  <div>
    <p>我是第一个P</p>        
    <p class="p2">我是第二个P</p> 
    <p>我是第三个P</p>        //我是.p2的next
    <p class="p4">我是第四个P</p>
  </div>  

十五、nextAll()    获取其后的所有兄弟元素

    语法:nextAll(expr)  expr:可选,筛选条件,获取其后符合expr条件的所有兄弟元素

  $(".p2").nextAll();  //如果筛选条件改为 $(".p2").nextAll(".p4");  则只有我是第四个P会被选中
  <div>
    <p>我是第一个P</p>        
    <p class="p2">我是第二个P</p> 
    <p>我是第三个P</p>        //会被选中,是.p2后面的兄弟元素
    <p class="p4">我是第四个P</p> //会被选中,是.p2后面的兄弟元素
  </div>  

十六、nextUntil()  获取其后的元素,直到参数能匹配上的为止,不包括结束条件那个

   语法:nextUntil([expr|ele][,fil])  expr筛选表达式 | DOM元素筛选,注意不包括参数里的那一个

  $(".p2").nextUntil(".p4");    //注意此方法并不会包括.p4
  <div>
    <p>我是第一个P</p>        
    <p class="p2">我是第二个P</p> 
    <p>我是第三个P</p>        //会被选中,是.p2后面的兄弟元素
    <p class="p4">我是第四个P</p> //不会被选中,我作为结束条件,但不包括我
  </div>

十七、offsetPosition()  返回第一个用于定位的祖先元素,即查找祖先元素中position为relative或absolute的元素。

   语法:offsetPosition()  此方法没有参数  由于CSS的绝对定位的定位基准是相对最近的一个已定位元素,因此此方法的作用不言而喻。

  $("span").offsetParent();
  <div style="position:relative">  //选中的是div,因此div是已定位元素。
    <p>
      <span>我是一个span</span>
    </p>
  </div>

十八、parent()    获取指定元素的直接父元素

    语法:parent(expr)  expr为筛选条件,如果直接父元素不符合条件,则不返回任何元素(无论它的祖先是否具有能与expr匹配的)

  $("span").parent();
  <div style="position:relative">  
    <p>                //我是span的直接父元素,我会被匹配到
      <span>我是一个span</span>
    </p>
  </div>

十九、parents()      获取指定元素的所有祖先元素,一直到<body></body>

   语法:parents(expr)  expr为筛选条件,如果某个祖先元素不符合expr则排除

  $("span").parents();
  <div style="position:relative">  //我是span的祖先元素,我也会被匹配到.另外<body></body>也会被匹配到  
    <p>                //我是span的直接父元素,我会被匹配到
      <span>我是一个span</span>
    </p>
  </div>

二十、parentsUntil()  获取指定元素的祖先元素,知道参数里能匹配到的为止

   语法:parentsUntil(expr)  expr为停止参数,一直匹配到expr为止,同时参数的条件是不会被匹配中的。

  $("span").parentsUntil("div");
  <div style="position:relative">  //我是span的祖先元素,但是我作为停止条件,我也不会被选中  
    <p>                //我是span的直接父元素,我会被选中
      <span>我是一个span</span>
    </p>
  </div>

二十一、prev()    获取指定元素的前一个兄弟元素

    语法:prev(expr)    expr:可选。当上一个兄弟元素不符合参数中的条件时,不返回任何元素。

  $(".p2").prev();    
  <div>
    <p>我是第一个P</p>      //我会被选中,我是.p2的前一个元素。
    <p class="p2">我是第二个P</p> 
    <p>我是第三个P</p>        
    <p class="p4">我是第四个P</p>
  </div>

二十二、prevAll()  获取指定元素前面的所有兄弟元素

    语法:prevAll(expr)  expr:可选,排除所有不能够被expr匹配上的元素

  $(".p4").prevAll(".p2");    
  <div>
    <p>我是第一个P</p>        //不会被选中,虽然我是.p4前面的兄弟元素,但是我没有class=p2
    <p class="p2">我是第二个P</p>  //会被选中,我既是.p4前面的兄弟元素,而且我有class=p2
    <p>我是第三个P</p>        //不会被选中,虽然我是.p4前面的兄弟元素,但是我没有class=p2
    <p class="p4">我是第四个P</p>  
  </div>

二十三、prevUntil()  获取指定元素前面的所有兄弟元素,直到参数里的条件能够匹配到的。 注意参数条件本身不会被匹配

    语法:prevUntil([expr|ele][,fil])  expr匹配表达式 | DOM元素匹配

  $(".p4").prevUntil(".p2");    
  <div>
    <p>我是第一个P</p>        //不会被选中,到p2就停止了
    <p class="p2">我是第二个P</p>  //不会被选中,我是停止条件,不包括我
    <p>我是第三个P</p>        //会被选中,我在.p2前,递归到我在到.p2
    <p class="p4">我是第四个P</p>  //不会被选中,我自己怎么可能是我自己前面的呢?
  </div>

/********************  串联 *******************************/

二十四、siblings()  获取指定元素的兄弟元素,不分前后

    语法:siblings(expr);  expr为筛选条件,不符合条件的不会选中

  $(".p2").siblings();    
  <div>
    <p>我是第一个P</p>        //会被选中,我是.p2的兄弟元素
    <p class="p2">我是第二个P</p>  //不会被选中,我是自己
    <p>我是第三个P</p>        //会被选中,我是.p2的兄弟元素
    <p class="p4">我是第四个P</p>  //会被选中,我是.p2的兄弟元素
  </div>

二十五、add()  将选中的元素添加到jQuery对象集合中

    add(expr|elements|html|jQueryObject)  expr:选择器表达式 | DOM表达式 | Html片段 | jQuery对象,将jQuery对象集合一起方便操作;

  $(".p2").add("span").css("background-color","red");    
  <div>
    <p>我是第一个P</p>        
    <p class="p2">我是第二个P</p>  //会变红
    <p>我是第三个P</p>        
    <p class="p4">我是第四个P</p>  
  </div>
  <span>我是一个span</span>      //会变红

二十六、andSelf()  将自身加到选中的jQuery集合中,以方便一次性操作

    andSelf()  此方法无参数

  $(".p2").nextAll().andSelf().css("background-color","red");
  <div>
    <p>我是第一个P</p>        
    <p class="p2">我是第二个P</p>  //会变红,这就是andSelf()的效果
    <p>我是第三个P</p>        //会变红
    <p class="p4">我是第四个P</p>  //会变红
  </div>

二十七、end()      将改变当前选择器选中的操作回退为上一个状态。

    end()   此方法没有参数

  $(".p2").next().end().css("background-color","red");
  <div>
    <p>我是第一个P</p>        
    <p class="p2">我是第二个P</p>  //会变红,这就end()的效果
    <p>我是第三个P</p>        //不会变红,尽管next()方法之后选中的是这一个,但是由于被end()方法回退了因此是上一个。
    <p class="p4">我是第四个P</p>
  </div>

二十八、contents  未明白

使用jQuery筛选排除元素以修改指定标签的属性的更多相关文章

  1. javascript jquery 修改指定标签中的内容

    javascript jquery 修改指定标签中的内容 $("#test1").text("Hello world!"); document.getEleme ...

  2. jQuery创建、删除和修改html标签

    1.在父标签内创建子标签,新创建的子标签放在父标签最下面 $(parent).append(son).$(son).appendTo(parent) <div class="d&quo ...

  3. 纯jQuery-添加/修改/删除 标签,属性

    <h1>通过学习<精彩绝伦的jQuery>与W3C,大致了解JQuery的一些方法.</h1> PS:需要有一些前置条件,比如JQuery源代码,比如html就要有 ...

  4. flask的jinja2过滤器使用:遍历索引指定标签class属性,实现样式变化

    在flask项目中实现上图效果,采用使用自定义过滤器的形式对 span 标签的 class 指定. 1.定义过滤器 # common.py def do_index_class(index): &qu ...

  5. 用jQuery创建HTML中不存在的标签元素碰到的问题

    如果你自定义了一个标签,比如<aaa></aaa> 用jQuery的写法,比如var custom_element = $('<aaa class="ee&qu ...

  6. jQuery筛选器及对DOM修改(学习笔记)

    1.jQuery筛选器 注意:请先在管理Nuget程序包中查找jQuery包,并安装.也可以在jQuery官网下载. 实现: <!DOCTYPE html> <html xmlns= ...

  7. jquery实现对象数组 筛选出每条记录中的特定属性字段 及根据某个属性值筛选出指定的元素

    jquery实现对象数组 筛选出每条记录中的特定属性字段 直接上图: 源码: /** * 对后端返回的数据,筛选出符合报表的列项,多余的列项去除 */ function filterParams(da ...

  8. jquery筛选元素函数

    jquery筛选元素函数 1.过滤匹配第二个p元素: $("button").click(function(){ $("p").eq(1).css(" ...

  9. jQuery设置和获取以及修改class name值操作

    在Web程序开发中.很多时候会用需要修改Html标签的class名称.来达到修改标签样式的效果.那么在代码中一般是怎么操作的呢.本文将为你详细讲解一下class的使用.在jQuery中可以使用attr ...

随机推荐

  1. 新年伊始,.net菜鸟入院的第一篇随笔

    学习.net有半年了,大二一年都是微软校园的负责人,但是因为根本没有系统的学习过编程的知识,所以一直都是活动负责人的身份,忙忙碌碌也没有什么收获,大三一狠心就退了,想能够踏踏实实的敲敲代码,手上的学习 ...

  2. (转载)提高mysql千万级大数据SQL查询优化30条经验(Mysql索引优化注意)

    1.对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引. 2.应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索 ...

  3. 关于SqlServer远程跨库修改数据

    今天遇到一个需求需要修改远程服务器上的数据,如何直接修改,并且垮库,跨库简单,直接加上数据库名字,远程的话则需要创建链接服务器,具体步骤如下: --创建链接服务器  exec sp_addlinked ...

  4. 禁止LISTCTRL表头拖动

    禁止ListCtrl表头拖动(Prevent CListCtrl column resizing) /*The header control in the ListView control sends ...

  5. 通过一步步创建sharded cluster来认识mongodb

    mongodb是目前使用非常广泛的nosql(not only sql)之一,在db engines上排名非常靠前,下图是5月份的排名: 可以看到前面四个都是传统的关系型数据库,而mongodb在no ...

  6. MyBatis源码解读(2)——MapperProxy

    SqlSession可以说是整个MyBatis的重中之重,在SqlSession中涉及到前一篇四大对象:Executor.StatementHandler.ParameterHandler.Resul ...

  7. 自己实现so加载器

    在进行安全研究中,我们需要经常使用ida等工具对app的so进行动态调试.这其中遇到的最大问题可能就是app加了反调试.反root等保护手段对应用运行环境进行检测,而这些手段往往是在我们附加进程之前就 ...

  8. numpy之索引和切片

    索引和切片 一维数组 一维数组很简单,基本和列表一致. 它们的区别在于数组切片是原始数组视图(这就意味着,如果做任何修改,原始都会跟着更改). 这也意味着,如果不想更改原始数组,我们需要进行显式的复制 ...

  9. Net分布式系统之六:微服务之API网关

    本人建立了个人技术.工作经验的分享微信号,计划后续公众号同步更新分享,比在此更多具体.欢迎有兴趣的同学一起加入相互学习.基于上篇微服务架构分享,今天分享其中一个重要的基础组件“API网关”. 一.引言 ...

  10. Json及Json字符串

    JSON(JavaScript Object Notation)是一种独立于开发语言的用于存储和交换文本数据的格式,JSON 语法是JavaScript 语法的子集. Json 可以保存数组格式和对象 ...