JS获取当前节点的兄弟/父/子节点

news2025/1/23 10:36:45

目录

JS获取当前节点的方式:

获取子节点:

获取父节点: 

获取兄弟节点


JS获取当前节点的方式:

通过事件监听器获取当前节点:

<button onclick="fun(this)"></button>
function fun(obj){
    // obj就是当前节点
//可以通过.父节点/子节点的方式来获取节点。
    obj.nextSiling;
}

1.getElementById()----通过ID获取

2.getElementsByTagName()--通过标签名获取

3.getElementsByClassName()--通过class(类名)获取

4.querySelector()----()号里可以根据css选择器的形式获取,获取第一个

5.querySelectorAll()--同上,获取所有""里的内容,返回的是一个“伪数组”

6.getElementsByName()---通过name属性来获取表单元素,一般也只用于表单元素

示例:

<ul>
        <li>li1</li>
        <li id="li2">li2</li>
        <li class="li3">li3</li>
        <li id="li4">li4</li>
        <li class="li5">li5</li>
    </ul>
    <input type="text" name="abc" value="你说呢">
    <script>
        //通过id获取
        let li2=document.getElementById("li2");
        // li2变成红色
        li2.style.color="red";
        //通过class获取,返回的是一个伪数组
        let li3=document.getElementsByClassName("li3");
        //li3变成绿色
        li3[0].style.color="green";
        //通过标签名获取,获取的也是一个伪数组
        let li = document.getElementsByTagName("li");
        //第一个li变成粉色
        li[0].style.color="pink";
        //通过querySelector获取
        let li4=document.querySelector("#li4");
        li4.style.color="blue";
        //通过querySelectorAll()获取
        let li5=document.querySelectorAll(".li5");
        //class为li5的第一个颜色变为紫色
        li5[0].style.color="purple";
        //通过name属性获取表单元素
        let abc=document.getElementsByName("abc");
        //name为abc的第一个元素字体变为红色
        abc[0].style.color="red";
    </script>

获取子节点:

1.通过一个一个.获取节点:

2.通过childNodes获取子节点:返回的也是子节点集合,是一个数组的格式。他会把换行和空格也当成是节点信息。

3.通过children获取,不过他也是数组,按照数组的形式访问就行

4.获取第一个子节点:firstChild,firstElementChild

5.获取最后一个子节点:lastChild,lastElementChild

//通过每一层.获取节点:
let b=document.getElementById("li01").querySelector("span");
alert(b.innerHTML);
//通过childNodes获取子节点:返回的也是子节点集合,是一个数组的格式。他会把换行和空格也当成是节点信息。
let c=document.getElementById("li02").childNodes;
alert(c[0].innerHTML);
//通过children获取,不过他也是数组,按照数组的形式访问就行
let d=document.getElementById("li03").children[0];
alert(d.innerHTML);
//获取第一个子节点:firstChild
let e=document.getElementById("li04").firstChild;//会匹配换行和空格
let f=document.getElementById("li04").firstElementChild;
//获取最后一个子节点:
let g=document.getElementById("li05").lastChild;//会匹配换行和空格
let h=document.getElementById("li05").lastElementChild;

获取父节点: 

1.获取单个父节点:parentNode,parentElement

let i=document.getElementById("li05").parentNode;
let j=document.getElementById("li05").parentElement;

2.获取所有父节点:offsetParent。返回的是个伪数组

let k=document.getElementById("li05").offsetParent;

获取兄弟节点

1.通过获取父节点再获取子节点来获取兄弟节点:

var brother1 = document.getElementById("li05").parentNode.children[1];

2.获取上一个节点

var brother2=document.getElementById("li05").previousElementSibling;
var brother2=document.getElementById("li05").previousSibling;

3.获取下一个节点

var brother4 = document.getElementById("test").nextElementSibling;
var brother5 = document.getElementById("test").nextSibling;

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/408212.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

若依vue3 前端微应用改造

一、前言 这篇是记录解决若依vue3版本微应用改造&#xff0c;但是自己之前也试过vue-element-admin框架的微应用改造&#xff0c;前端主流的微应用技术不怎么挑框架的&#xff0c;而且注入方式大同小异。但自己之前尝试的时候踩过很多坑&#xff0c;但是确实比较麻烦&#xff…

Javascript知识【jQuery样式操作案例:jQuery隔行换色】

&#x1f482; 个人主页: 爱吃豆的土豆&#x1f91f; 版权: 本文由【爱吃豆的土豆】原创、在CSDN首发、需要转载请联系博主&#x1f4ac; 如果文章对你有帮助、欢迎关注、点赞、收藏(一键三连)和订阅专栏哦 &#x1f3c6;人必有所执&#xff0c;方能有所成&#xff01; &#…

【element-ui】 el-table 表格动态合并相同数据单元格最全教程,可指定列+自定义合并条件,附完整代码

el-table合并单元格 1.固定合并 官方挺提供的合并具体某行列的方法:el-table合并行或列通过给table传入span-method方法可以实现合并行或列&#xff0c;方法的参数是一个对象&#xff0c;里面包含当前行row、当前列column、当前行号rowIndex、当前列号columnIndex四个属性。 …

CSS中的伪类和伪元素(详细)

这篇想要跟大家分享的是css中的伪类和伪元素&#xff0c;有任何问题可以私聊我或者评论哦&#xff01; 首先&#xff0c;我们先来想一下 一、引入伪类跟伪元素的原因&#xff1f; 伪类和伪元素的引入是因为在文档树里有些信息无法被充分描述 比如CSS没有“段落的第一行”、…

[error] Error: Fail to open IDE 问题解决

问题描述&#xff1a;接手前辈的微信小程序项目&#xff08;uni-app搭建&#xff09;&#xff0c;使用HBuilder编译器&#xff0c;&#xff0c;控制台报 [error] Error: Fail to open IDE 错误原因一&#xff1a;微信小程序AppID错误解决方法&#xff1a;如图点击项目目录 mani…

wangeditor5在vue3中的全使用过程(图片上传、附件上传、工具栏配置、编辑器配置)

1、参考官方的wangeditor5-for-vue3的开发手册 官方文档地址&#xff1a;https://clinfc.github.io/wangeditor5-for-vue3/guide/ 说明为说明要编写这编博客文章&#xff1f; 官方文档的使用手册对于新手来说比较的难看懂&#xff0c;写的也不够详细&#xff0c;源码的封装比较…

vue3+vite项目配置ESlint、pritter插件

前言 入行前端工作将近两年多时间了&#xff08;如果算上实习&#xff09;&#xff0c;从一开始vue2入门&#xff0c;到现在vue3前端变化是真的快&#xff0c;刚了解webpack搭建项目流程&#xff0c;vite又横空出世&#xff0c;不得不说前端变化真的太快了&#xff0c;所以只有…

【JavaScript】DOM和事件简介和文档加载流程以及DOM查询(上)案例(附源码)

&#x1f41a;作者简介&#xff1a;苏凉&#xff08;专注于网络爬虫&#xff0c;数据分析&#xff0c;正在学习前端的路上&#xff09; &#x1f433;博客主页&#xff1a;苏凉.py的博客 &#x1f310;系列总专栏&#xff1a;web前端基础教程 &#x1f451;名言警句&#xff1a…

自己的智能AI聊天机器人,可自定义头像,免费html源码分享,粘贴即用!

1.展示效果效果预览图&#xff1a;新增小功能&#xff1a;① 在原有的基础上加入了本地实时存档的功能&#xff0c;按照下面的步骤便可以随时在本地查看以往和智能AI所有的聊天记录哦&#xff01;再也不用担心关闭网页后先前的聊天内容全部消失啦&#xff01;PS&#xff1a;最新…

解决宝塔 Nginx 跨域问题Access-Control-Allow-Origin

何为跨域&#xff1f; 1、资源跳转&#xff1a; A链接、重定向、表单提交 2.资源嵌入&#xff1a; <link>、<script>、<img>、<frame>等dom标签&#xff0c;还有样式中background:url()、font-face()等文件外链 3.脚本请求&#xff1a; js发起的ajax请…

商城系统需求分析

文章目录一、引言1.1项目背景1.2 前期工作二、技术概述三、功能需求3.1 功能块划分3.2 功能块描述3.2.1 面向用户部分功能&#xff1a;3.2.2 后台管理部分功能&#xff1a;四、性能需求4.1 数据精确度4.2 适应性五、系统流程图5.1 顾客与管理员流程图如下5.2 订单处理流程说明六…

VUE动态切换皮肤 VUE动态切换背景图片 操作 / VUE 主题切换

上正文 使用&#xff1a;root &#xff0c;var&#xff08;&#xff09;函数实现 1. 创建皮肤或主题 css目录 一个公共主题文件 theme.css&#xff0c;一个main.js引入文件theme-all.css&#xff0c;一个单独的 主题样式文件 theme-12.css 2. 定义css文件中所要切换的主题的…

vue(绑定style属性)

以对象方式绑定style属性 <div id"app"> <!-- 在行内属性中书写样式 --> <div style"color:royalblue ; font-size: 48px;">黄绥睿真帅个鬼</div> <!-- 把行内属性改造成对象&#xff0c;以对象方式绑定style属性 外部增加{}&a…

【进阶】TS 中的 类型断言 和 泛型

类型断言 作用 : 手动指定值的具体类型 ( 缩写值的范围 ) 应用场景 1 获取 DOM 元素的时候指定具体元素 示例 : const box document.getElementById(img) console.log(box.src) // ts报错错误内容 : 解析 &#xff1a; 上述语法在 js 中可以直接使用, 但是 TS 中就不行…

vue 动态样式绑定 class/style

简介&#xff1a; 字符串写法&#xff1a;类名不确定&#xff0c;要动态获取 对象写法&#xff1a;要绑定多个样式&#xff0c;个数确定&#xff0c;名字确定&#xff0c;但不确定用不用。 数组写法&#xff1a;要绑定多个样式&#xff0c;个数不确定&#xff0c;名字不确定。…

HTML基础 - HTML表格

HTML基础 - HTML表格 1.无表头的表格 <table> <tr> <td> <table>标签代表的是表 <tr>标签代表的是行 <td>标签代表的是列 在html页面中的表格来着&#xff0c;就和excl的表格不一样喽&#xff0c;咱自己有自己的规则&#xff1a; 这就是…

这一次,彻底搞懂箭头函数

一、箭头函数的特点 1. 相比普通函数&#xff0c;箭头函数有更加简洁的语法。 普通函数 function add(num) {return num 10 }箭头函数 const add num > num 10;2. 箭头函数不绑定this&#xff0c;会捕获其所在上下文的this&#xff0c;作为自己的this。 这句话需要注意的…

若依(ruoyi)字典管理插件实现思路探究

一个UI表单的构成&#xff0c;避免不了下拉框&#xff0c;多选框等标签&#xff0c;在开发这些标签时&#xff0c;通常会请求后台接口获取字典值进行动态渲染。定制化开发虽然实现简单&#xff0c;但会产生大量重复工作&#xff0c;解决这类问题的思路有哪些&#xff1f;文章对…

chrome插件开发时跨域问题解决方案

这是一个没有套路的前端博主&#xff0c;热衷各种前端向的骚操作&#xff0c;经常想到哪就写到哪&#xff0c;如果有感兴趣的技术和前端效果可以留言&#xff5e;博主看到后会去代替大家踩坑的&#xff5e;接下来的几篇都是uni-app的小实战&#xff0c;有助于我们更好的去学习u…

Vue在HTML中如何使用

&#x1f440;Vue是什么 一套用于构建用户界面的渐进式JavaScript框架。 构建用户界面&#xff1a;数据变成界面渐进式&#xff1a;Vue可以自底向上逐层的应用&#x1f440;Vue如何使用 一、引入vue.js <script src"./js/vue.js"></script> 二、准备一个…