元素选择器家庭关系(父、子、兄弟姐妹)

0.00

★15次@未来之窗

A:赛忞初雪

上架: 2025-09-27 01:57:27

元素选择器家庭关系(父、子、兄弟姐妹)

         收藏
 

四方仙域传送阵         

未来之窗昭和仙君 - 元素选择器家庭关系说明

未来之窗昭和仙君 - cyberwin_fairyalliance_webquery

元素选择器家庭关系(父、子、兄弟姐妹)功能说明

一、功能概述

元素选择器家庭关系功能通过"家庭关系"命名(如祖先、孩子、兄弟),提供直观的DOM元素层级选择能力,可快速定位目标元素的祖先、父级、子级、兄弟元素,无需手动遍历DOM树,大幅简化层级元素选择代码。

该功能适用于需要根据元素层级关系定位元素的场景,如表单联动、菜单交互、动态DOM操作等,支持通过选择器筛选目标元素,提升选择精准度。

二、核心函数与参数

1. 祖先与父级相关

函数名 参数 返回值 功能说明
祖先(selector) selector(字符串,可选):CSS选择器 $cq对象:匹配的祖先元素 向上查找当前元素的祖先元素(包括父级),若指定selector则返回第一个匹配的祖先,否则返回最近的祖先

2. 子级相关

函数名 参数 返回值 功能说明
孩子(selector) selector(字符串,可选):CSS选择器 $cq对象:匹配的子元素集合 查找当前元素的直接子元素,若指定selector则返回匹配的子元素,否则返回所有直接子元素
第一个() $cq对象:第一个元素 从当前元素集合中取第一个元素(常用于筛选子元素中的第一个)
最后一个() $cq对象:最后一个元素 从当前元素集合中取最后一个元素(常用于筛选子元素中的最后一个)

3. 兄弟相关(后续兄弟)

函数名 参数 返回值 功能说明
兄弟(selector) selector(字符串,可选):CSS选择器 $cq对象:匹配的兄弟元素集合 查找当前元素的所有兄弟元素(不包括自身),若指定selector则返回匹配的兄弟元素
下一个兄弟(selector) selector(字符串,可选):CSS选择器 $cq对象:匹配的下一个兄弟元素 查找当前元素的下一个直接兄弟元素,若指定selector则返回第一个匹配的下一个兄弟
兄弟们(selector) selector(字符串,可选):CSS选择器 $cq对象:匹配的后续兄弟元素集合 查找当前元素之后的所有兄弟元素,若指定selector则返回匹配的后续兄弟元素
兄弟亲密(selector, filter) selector(字符串,必选):结束条件选择器
filter(字符串,可选):筛选选择器
$cq对象:匹配的兄弟元素集合 查找当前元素到指定selector元素之间的后续兄弟元素,若指定filter则筛选匹配的元素(不包含结束元素)

4. 兄弟相关(前置兄弟)

函数名 参数 返回值 功能说明
大哥(selector) selector(字符串,可选):CSS选择器 $cq对象:匹配的上一个兄弟元素 查找当前元素的上一个直接兄弟元素,若指定selector则返回第一个匹配的上一个兄弟
大哥们(selector) selector(字符串,可选):CSS选择器 $cq对象:匹配的前置兄弟元素集合 查找当前元素之前的所有兄弟元素,若指定selector则返回匹配的前置兄弟元素
大哥亲密(selector, filter) selector(字符串,必选):结束条件选择器
filter(字符串,可选):筛选选择器
$cq对象:匹配的兄弟元素集合 查找当前元素到指定selector元素之间的前置兄弟元素,若指定filter则筛选匹配的元素(不包含结束元素)

三、使用示例

示例1:子级与祖先元素选择

通过"孩子""第一个""最后一个""祖先"函数选择相关元素:

交互演示:

页面容器(祖先元素)
产品列表(父元素)
产品1
产品2
产品3
产品4
操作结果将显示在这里...

核心代码:

// 1. 选择父元素下的第一个子元素 const firstChild = $cq('#productList').孩子().第一个(); console.log('第一个子元素ID:', firstChild.attr('data-id')); // 输出: "1" // 2. 选择父元素下的最后一个子元素 const lastChild = $cq('#productList').孩子().最后一个(); console.log('最后一个子元素ID:', lastChild.attr('data-id')); // 输出: "4" // 3. 选择元素的祖先元素 const ancestor = $cq('#productList').祖先('#pageContainer'); console.log('找到的祖先元素ID:', ancestor.attr('id')); // 输出: "pageContainer"
示例2:兄弟元素选择

通过"下一个兄弟""兄弟们""大哥"函数选择当前元素的兄弟元素:

交互演示:

菜单列表
菜单1
菜单2(当前选中)
菜单3
菜单4
菜单5
操作结果将显示在这里...

核心代码:

// 1. 选择当前元素的下一个兄弟元素 const nextBrother = $cq('#currentMenu').下一个兄弟(); console.log('下一个兄弟ID:', nextBrother.attr('data-id')); // 输出: "3" // 2. 选择当前元素的所有后续兄弟元素 const allNextBrothers = $cq('#currentMenu').兄弟们(); console.log('后续兄弟数量:', allNextBrothers.length); // 输出: 3 // 3. 选择当前元素的上一个大哥元素 const prevBrother = $cq('#currentMenu').大哥(); console.log('上一个大哥ID:', prevBrother.attr('data-id')); // 输出: "1"
示例3:范围兄弟选择

通过"兄弟亲密""大哥亲密"函数选择范围内的兄弟元素:

交互演示:

项目列表
项目10
项目11
项目12(当前选中)
项目13
项目14
项目15
项目16
操作结果将显示在这里...

核心代码:

// 1. 选择当前元素到指定元素之间的兄弟元素 const siblingsUntil = $cq('#currentItem').兄弟亲密('[data-id="15"]'); const ids1 = siblingsUntil.map(el => el.getAttribute('data-id')); console.log('范围内的兄弟ID:', ids1); // 输出: ["13", "14"] // 2. 选择当前元素到指定元素之间的前置兄弟元素 const prevSiblingsUntil = $cq('#currentItem').大哥亲密('[data-id="10"]'); const ids2 = prevSiblingsUntil.map(el => el.getAttribute('data-id')); console.log('范围内的大哥ID:', ids2); // 输出: ["11"]

四、注意事项

  • 所有函数返回的都是$cq对象,支持链式调用(如$cq('#item').下一个兄弟().孩子()
  • 选择器参数支持标准CSS选择器语法,如类选择器(.class)、ID选择器(#id)、属性选择器([name="value"])等
  • "孩子"函数只选择直接子元素,不包括孙子辈及更深层级的元素
  • 兄弟相关函数不会包含元素自身,只返回其他同级元素
  • 当没有找到匹配元素时,返回空的$cq对象,不会抛出错误
  • "兄弟亲密"和"大哥亲密"函数返回的结果不包含作为结束条件的元素本身

硬件app