使用过滤器(二):查找、串联
发布日期:2021-05-07 08:57:12 浏览次数:26 分类:精选文章

本文共 2278 字,大约阅读时间需要 7 分钟。

查找

向下查找

1、children()
该方法能够查找当前元素的所有或者部分子元素

children([expr])

参数可选,是jQuery选择器表达式字符串,用于过滤子元素。如果省略,表示匹配所有的子元素

例:为列表框中的所有列表项定义一个下划线样式

$(function(){   	$('#menu').children().css("text-decoration",'underline')})

2、contents()

该方法不仅可以获取子元素,还可以获取文本节点和注释节点。该方法没有参数,功能等同于DOM的childNodes
3、find()
该方法能够查找所有后代元素,而children()方法制作查找子元素

向上查找

1、parents()
该方法能够查找所有元素的祖先元素

parents([expr])

参数expr表示jQuery选择器表达式字符串,用于过滤祖先元素。该参数可以选,如果省略,则将匹配所有元素的祖先元素。如果存在重合的祖先元素,则仅记录一次

2、parent()

parent([expr])

参数可选用于过滤父元素,如果省略则将匹配所有元素的唯一父元素

3、parentUntil()
该方法相当于再parents()方法返回集合中截取部分祖先元素

parentUnitl([expr])

参数可选,用于确定祖先元素的范围(例如某一个祖先元素);如果省略作用域parents()方法相同,匹配所有祖先元素

例:匹配三级菜单下的第一个列表项,然后用parentsUntil()方法获取在u1范围内的他的祖先元素,并为查找的祖先元素定义边框样式

    一级菜单
  • 1
  • 2
      二级菜单
    • 21
    • 22
        三级菜单
      • 31
      • 32
      • 33
    • C
  • 3

4、offsetParent()

该方法无参数,用于查找当前元素最近的定位包含框,定位包含框指的是设置position属性值为relative或absolute的祖先元素
向前查找
1、prev()

prev[expr]
用于匹配前一个相邻的元素,参数expr表示jQuery选择器表达式,用于过滤匹配元素。该参数为可选,如果省略,则将匹配所有上一个元素

例 :查找类名为red的p元素,然后使用prev方法查找前一个相邻的元素,并为其设置边框

$(function() {   	$('p.red').prev().css('border', 'solid 1px red')})

2.prevAll()

prevAll([expr])
与prev()方法类似,该方法能够向前获取所有相邻的同辈元素。参数可选用于过滤元素,如果省略向前获取所有相邻的同辈元

3、prevUntil()

prevUntil([selector])
向前匹配指定范围内所有的相邻元素参数可选,为jQuery表达式字符串,用于过滤匹配元素

例:先查找类名为red的p元素,然后查找h1元素前面的所有同辈元素,并设置边框

$(function() {       $('p.red').prevUntil('h1').css('border', 'solid 1px red')})

向后查找

1、next()

next([expr])
向后匹配一个元素,参数可选,如果省略则将匹配所有下一个相邻的元素

2、nextAll()

3、nextUntil()

查找同辈元素

使用siblings()方法可以查找所有兄弟元素,不管其位置是前是后

siblings([expr])
参数可选,如果省略则将匹配所有同辈兄弟元素

添加查找

使用add()方法可以为查找的结果集添加新的查找内容,

add(expr,[content])

参数expr表示jQuery选择器表达式字符串,用于匹配元素并添加的表达式字符串,或者用于动态生成HTML代码,如果是一个字符串数组则返回多个元素怒。content为可选参数,可以是待查找的DOM元素集、文档或jQuery对象

串联

合并jQuery对象:addBack()

两个jQuery对象设置相同的样式

床前明月光,疑是地上霜。

举头望明月,低头思故乡。

该例是将div中的p标签设置边框。如果同时希望为外围的div也设置边框,最简单的是再写一行代码,单独为div设置样式,但是这样与jQuery的链式语法原则相违背 在这里使用addBack帮助用户把前后jQuery对象合并成一个新的jQuery对象,在这里$('div')和$('div').find('p')是两个不同的jQuery对象
$('div').find('p').addBack().css('border', 'solid 1px red')

返回jQuery对象:end()

两个jQuery对象设置不同的样式

$('div').find('p').css('border', 'solid 1px red')		.end().css('background', 'yellow')
该例是先为p标签设置边框样式,然后再为外层的div设置背景,完成的是两个任务
上一篇:焦点轮播图
下一篇:C - Boboniu and String

发表评论

最新留言

留言是一种美德,欢迎回访!
[***.207.175.100]2025年04月01日 16时49分03秒