首页 > 其他分享 >JS DOM操作(三)

JS DOM操作(三)

时间:2024-03-15 15:04:41浏览次数:14  
标签:console DOM 元素 element 获取 内边 操作 JS 节点

1.操作节点

  1. 获取节点属性:

语法

getAttribute(“属性名”);

var value = element.getAttribute("data-custom");
//请注意,获取节点属性时,如果属性不存在,则会返回 null

2.设置节点属性:
语法

setAttribut(“属性名”,“属性值”);

element.setAttribute("data-custom", "value");
//设置节点属性时,如果属性已存在,则会更新属性值;如果属性不存在,则会创建一个新属性。

2.创建和插入节点

element.appendChild(childNode):在父节点末尾添加节点

  • 代码示例
var parentNode = document.getElementById("parentNode");
parentNode.appendChild(clonedNode);

element.insertBefore(A.B):在指定节点之前插入节点;

  • 代码示例
var referenceNode = document.getElementById("referenceNode");
var parentNode = referenceNode.parentNode;
parentNode.insertBefore(clonedNode, referenceNode);

element.cloneNode(deep):克隆某个指定的节点

  • 代码示例
var originalNode = document.getElementById("originalNode");
var clonedNode = originalNode.cloneNode(true); // 参数为 true 表示深度克隆,复制节点及其所有子节点

3.删除和替换节点

node.removeChild(childNode):删除指定的节点,childNode是要删除的节点,节点被删除它的子节点也会被删除

  • 代码示例
  var parent = document.getElementById("parent");
  parent.removeChild(child);

node.replaceChild(newnode,oldnode):把每一个节点替换为新的节点;

  • 代码示例
  var parent = document.getElementById("parent");
  var newNode = document.createElement("div");
  parent.replaceChild(newNode, oldNode);

4.获取元素位置

  • offset属性
  1. offsetTop: 获取当前元素相对于其 offsetParent 元素的顶部内边距的距离。
  2. offsetLeft: 获取当前元素相对于其 offsetParent 元素的左侧内边距的距离。
  3. offsetWidth: 获取当前元素的宽度,包括元素的宽度、内边距和边框,但不包括外边距。
  4. offsetHeight: 获取当前元素的高度,包括元素的高度、内边距和边框,但不包括外边距。
  • 代码示例
<style>
    #example {
        width: 200px;
        height: 100px;
        padding: 20px;
        border: 2px solid black;
        position: relative;
        top: 50px;
        left: 50px;
    }
</style>
</head>
<body>

<div id="example">This is an example element.</div>

<script>
var element = document.getElementById("example");

// 获取元素相对于其 offsetParent 元素的顶部内边距的距离
console.log("Offset Top: " + element.offsetTop);

// 获取元素相对于其 offsetParent 元素的左侧内边距的距离
console.log("Offset Left: " + element.offsetLeft);

// 获取当前元素的宽度,包括元素的宽度、内边距和边框,但不包括外边距
console.log("Offset Width: " + element.offsetWidth);

// 获取当前元素的高度,包括元素的高度、内边距和边框,但不包括外边距
console.log("Offset Height: " + element.offsetHeight);
</script>
  • client属性
  1. clientWidth: 获取元素的内部宽度,包括内边距但不包括滚动条和边框。
  2. clientHeight: 获取元素的内部高度,包括内边距但不包括滚动条和边框。
  3. clientTop: 获取元素上边框边界与元素所属文档(document)的顶部之间的距离。
  4. clientLeft: 获取元素左边框边界与元素所属文档(document)的左侧之间的距离
  • 代码示例
<style>
    #example {
      width: 200px;
      height: 100px;
      padding: 20px;
      border: 2px solid black;
      overflow: scroll;
    }
  </style>
</head>
<body>

<div id="example">This is an example element with scrollbars.</div>

<script>
  var element = document.getElementById("example");

  // 获取元素的内部宽度,包括内边距但不包括滚动条和边框
  console.log("Client Width: " + element.clientWidth);

  // 获取元素的内部高度,包括内边距但不包括滚动条和边框
  console.log("Client Height: " + element.clientHeight);

  // 获取元素上边框边界与文档顶部之间的距离
  console.log("Client Top: " + element.clientTop);

  // 获取元素左边框边界与文档左侧之间的距离
  console.log("Client Left: " + element.clientLeft);
</script>
  • scroll属性
  1. scrollWidth: 获取元素内容的总宽度,即包括不可见部分的完整内容宽度。
  2. scrollHeight: 获取元素内容的总高度,即包括不可见部分的完整内容高度。
  3. scrollLeft: 获取或设置元素的水平滚动条相对于左侧的偏移量。
  4. scrollTop: 获取或设置元素的垂直滚动条相对于顶部的偏移量。
  • 代码示例
 <style>
    #scrollable {
      width: 200px;
      height: 100px;
      border: 2px solid black;
      overflow: scroll;
    }
    #content {
      width: 300px;
      height: 300px;
      background-color: #f0f0f0;
    }
  </style>
</head>
<body>

<div id="scrollable">
  <div id="content">This is a scrollable content.</div>
</div>

<script>
  var scrollable = document.getElementById("scrollable");

  // 获取内容的总宽度,即包括不可见部分的完整内容宽度
  console.log("Scroll Width: " + scrollable.scrollWidth);

  // 获取内容的总高度,即包括不可见部分的完整内容高度
  console.log("Scroll Height: " + scrollable.scrollHeight);

  // 获取水平滚动条相对于左侧的偏移量
  console.log("Scroll Left: " + scrollable.scrollLeft);

  // 获取垂直滚动条相对于顶部的偏移量
  console.log("Scroll Top: " + scrollable.scrollTop);
</script>

标签:console,DOM,元素,element,获取,内边,操作,JS,节点
From: https://blog.csdn.net/m0_74270395/article/details/136737103

相关文章

  • JS DOM操作(一)
    .#1.DOM操作分类1.1DOMcore(核心操作)document:表示整个文档,可以用于访问文档的各个部分和属性。Element:表示HTML元素,提供了访问和操作元素的方法和属性。Node:表示文档中的节点,包括元素、文本节点、注释等,提供了节点通用的方法和属性。1.2HTML-DOM获取元素:通过ID、类......
  • 在LINUX下,关于文件读写的操作
    对于我在做EMS的项目中需要把关键数据要保存下来,之前采用将关键数据保存在EMMC当中,结果发现会导致系统崩溃,所以还是采用将数据存储在文件的方法。下面是文件的相关操作//在嵌入式系统中,可以使用标准C库提供的文件操作函数来进行文件的读、写和删除操作。下面是对应的实现方......
  • Light Random Sprays Retinex 传统的图像增强算法LRSR
    文章目录前言1、LightRandomSpraysRetinex概况2、LightRandomSpraysRetinex具体实现2.1、噪声去除2.2、亮度调整2.3、插值技术3、LightRandomSpraysRetinex源码4、LightRandomSpraysRetinex效果及结论前言  LightRandomSpraysRetinex,即“光随......
  • 脑图系列-操作系统IO
     同步、异步、阻塞、非阻塞同步与异步描述的是被调用者的如果是同步,B在接到A的调用后,会立即执行要做的事。A的本次调用可以得到结果。让我干活立马就干,立即反馈结果如果是异步,B在接到A的调用后,不保证会立即执行要做的事,但是保证会去做,B在做好了之后会通知A。A的本次调用......
  • fastjson1.2.24-RCE漏洞复现
    触发过程图靶场模拟1、实验环境准备攻击者kali(192.168.101.141)使用工具:marshalsec-0.0.3-SNAPSHOT-all.jarGitHub-RandomRobbieBF/marshalsec-jar:marshalsec-0.0.3-SNAPSHOT-allcompiledonX64被攻击者centos7(192.168.101.148)使用工具:dockerdocker-compose......
  • MirageJS 使用总结 vue2上亲测使用
    注:MirageJS英文文档看的头疼,且百度上都是片段比较多,本着拿来主义的思路,就把代码粘贴上,这样不仅方便自己,也能方便大家简单介绍一下他的好处及功能MirageJS是一个用于模拟服务器端数据和网络请求的JavaScript库,它可以帮助开发者在前端环境中创建假数据、定义路由和处理请求。......
  • MeterSphere接口自动化系列之JSONPath常用提取方式
    一、使用场景        针对接口返回结果,提取相应的信息,用于后续接口输入或用于执行结果断言,对应平台的后置操作、断言规则页签。        二、常用方式实例接口返回结果{"code":0,"data":{"cart":{"id":"34253627754......
  • numpy中random.seed()与random.RandomState()的区别
    1.random.seed()用处:初始化随机数生成器。设置随机数生成器种子后,直接生成随机数即可,无需在随机数生成器条件下运行。2.random.RandomState()作用:获得随机数生成器 比较上面两图可以看出,获取随机数生成器之后,必须在此条件下运行,才可生成相同的随机数,若不在此条件下运行,随......
  • Android中的NFC操作
    目录1.申请权限2.设置意图过滤器3.判断NFC功能是否可用(NfcAdapter)4.NFC感应(NfcAdapter)启用与禁用5.NFC数据解码6.案例代码一览NFC的全称是“NearFieldCommunication”,意思是近场通信、与邻近的区域通信。该功能由NfcAdapter(NFC适配器)控制。1.申请权限<!--N......
  • js如何拦截全局Fetch的请求和响应
    目前,团队采用了根路径转发的方式,将接口请求转发到服务器上,实现了一定的解耦。然而,随着团队后端策略的变化,现在希望前端直接请求一个新的接口域名,而不再经过中间层的处理。在这种情况下,由于之前的代码中没有对接口请求进行统一的封装,需要考虑如何以最小的成本进行迁移。Fetc......