当前位置: 首页 > news >正文

js Dom基础

获取元素

1、getElementById() 通过id属性获取一个元素节点对象

<div id="div1"></div>

 <script>

       var div1 = document.getElementById('div1')

 </script>

2、 getElementsByTagName()可以根据标签名来获取一组元素节点对象

这个方法会给我们返回一个类数组对象,所有查询到的元素都会封装到对象中

即使查询到的元素只有一个,也会封装到数组中返回

<div id="div1"></div>

 <div class="cls"></div>

<div></div>

<script>

        var divs = document.getElementsByTagName('div')

        console.log(divs);     //  [div#div1, div.cls, div, div]

</script>

3、getElementsByName() 通过name属性获取一组元素节点对象

<div id="div1" name='nme'></div>

<div class="cls" name='nme'></div>

<div name='nme'></div>

<script>

        var divs = document.getElementsByName('nme')

        console.log(divs);  //  [div#div1, div.cls, div]

</script>

4、 getElementsByClassName() 通过class属性获取一组元素节点对象 (不支持IE8及以下浏览器)

<div id="div1" class="cls"></div>

<div class="cls"></div>

<div class="cls"></div>

<script>

        var divs = document.getElementsByClassName('cls')

        console.log(divs);  // [div#div1.cls, div.cls, div.cls]

</script>

5、 document.querySelector()

-需要一个选择器的字符串作为参数,可以根据一个css选择器来查询一个元素节点对象

-该方法总会返回唯一的元素,如果满足条件的元素是多个,那么它只会返回第一个

-IE8以上的都适用

<div id="div1" class="cls"></div>

<div class="cls"></div>

<script>

        var divs = document.querySelector('.cls')

        console.log(divs);  // <div id="div1" class="cls"></div>

</script>

<div id="div1" class="cls">

        <p></p>

</div>

<script>

        var p = document.querySelector('.cls p')

        console.log(p);  // <p></p>

.</script>

6、document.querySelectorAll()

-该方法和qureySelector()用法类似,

    不同的是它将会将符合条件的元素封装到一个数组中返回

    -即使符 合条件的元素只有一个,它也会返回数组

<div id="div1" class="cls"></div>

<div class="cls"></div>

<div class="cls"></div>

<script>

        var divs = document.querySelectorAll('.cls')

        console.log(divs);  // [div#div1.cls, div.cls, div.cls]

</script>

7、获取body标签

1、document.getElementsByTagName("body")[0]

2、document.body

8、获取html标签

document.documentElement

9、获取页面中的所有元素

1、document.all

2、document.getElementsByTagName("*")

操作元素

操作内容

element.innerText    从起始位置到终止位置的内容,但它去除html标签,同时空格和换行也会去掉

element.innerHTML   起始位置到终止位置的全部内容,包括HTML标签,同时保留空格和换

 <div class="box">

        <p> 内容 </p>

</div>

<script>

        var box = document.querySelector('.box')

        console.log(box.innerHTML);  //  <p> 内容 </p>

        console.log(box.innerText);  //  内容

</script>

操作属性

操作标签自带的属性

比如:src herf  value  chexked  disabled  title

<img src="./img1.png" alt="">

<input type="text">

<script>

        var img = document.querySelector('img')

        var ipt = document.querySelector('input')

        img.src = './img2.png'

        ipt.value = '直接赋值value'

</script>

操作元素样式

我们可以通过 JS 修改元素的大小、颜色、位置等样式。

1、修改行内样式操作

<img src="./img1.png" alt="">

<p>iedhfiuse</p>

<script>

        var img = document.querySelector('img')

        var p = document.querySelector('p')

        img.style.height = '100px'

        p.style.fontSize = '20px'

</script>

这种写法是通过js把样式写在行内

2、修改类名样式操作

<h1 class="title"></h1>

<p class="cont">iedhfiuse</p>

<script>

        var ttle = document.querySelector('.title')

        var cont = document.querySelector('.cont')

        ttle.className = 'title'

        cont.className = 'content'

</script>

这种方法需要提前在css中写好类名样式比如(title,content),然后通过js操作直接把类名换成写好的类名

注意:

JS里面的样式采取驼峰命名法,比如 fontSize ,backgroundColor
JS 修改 style 样式操作 ,产生的是行内样式,CSS权重比较高
如果样式修改较多,可以采取操作类名方式更改元素样式
class 因为是个保留字,因此使用className来操作元素类名属性
className 会直接更改元素的类名,会覆盖原先的类名

操作自定义属性

获取自定义的属性

element.getAttribute('属性');

<h1 class="title" index="'1"></h1>

<script>

        var ttle = document.querySelector('.title')

        console.log(ttle.getAttribute('index'));  //  1

</script>

设置自定义的属性

element.setAttribute('属性','值');

<h1 class="title"></h1>

<p class="cont">iedhfiuse</p>

<script>

        var ttle = document.querySelector('.title')

        var cont = document.querySelector('.cont')

        ttle.setAttribute('index', 123)

        cont.setAttribute('abc', 1)

        console.log(ttle.getAttribute('index'));  //  123

        console.log(cont.getAttribute('abc'));  // 1

</script>

移除属性

element.removeAttribute('属性');

<h1 class="title"></h1>

<p class="cont">iedhfiuse</p>

<script>

        var ttle = document.querySelector('.title')

        var cont = document.querySelector('.cont')

        ttle.setAttribute('index', 123)

        cont.setAttribute('abc', 1)

        console.log(ttle.getAttribute('index'));  //  123

        console.log(cont.getAttribute('abc'));  // 1

        ttle.removeAttribute('index')

        cont.removeAttribute('abc')

        console.log(ttle.getAttribute('index'));  //  null

        console.log(cont.getAttribute('abc'));  // null

</script>

H5新增自定义属性

H5新规定的自定义属性必须由 data- 开头  例如:data-index="abcd"

获取自定义属性

1、element.getAttribute("自定义属性名")

2、element.dataset.属性名

<h1 data-index="123"></h1>

<script>

        var ttle = document.querySelector('h1')

        console.log(ttle.dataset.index);  //  123

        console.log(ttle.dataset['index']);  // 123

</script>

设置自定义属性

<h1 data-index="123"></h1>

<script>

        var ttle = document.querySelector('h1')

        ttle.setAttribute('data-id', 1)

        console.log(ttle.dataset.id);  // 1

</script>

排他思想

有一组元素,你只想给其中一个设置设置样式,此时就需要把其他的元素排除掉

利用循环先给所有元素清除样式,然后再设置自己想设置的那个

<!-- 需求:给当前点击的按钮,添加背景色 -->

<button>按钮1</button>

<button>按钮2</button>

<button>按钮3</button>

<button>按钮4</button>

<script>

//1、获取到所有的按钮

 var btns = document.querySelectorAll("button");

 //2、通过循环,给所有的按钮绑定点击事件,处理函数

for (var i = 0; i < btns.length; i++) {

      // console.log(btns[i]);

      btns[i].onclick = function () {

        // 排他思想    先去除所有的背景色样式,点击谁就给谁添加背景色

        for (var j = 0; j < btns.length; j++) {

          btns[j].style.backgroundColor = "";

        }

        // 给你每个按钮添加背景色

        this.style.backgroundColor = "red";

      };

    }

 </script>

相关文章:

js Dom基础

获取元素 1、getElementById() 通过id属性获取一个元素节点对象 <div id"div1"></div> <script> var div1 document.getElementById(div1) </script> 2、 getElementsByTagName()可以根据标签名来获取一组元素节点对象 这个方法会给我们返…...

pytest识别测试用例的机制以及和unittest的区别

pytest识别测试用例的机制 文件 以test_开头或以_test结尾的python文件&#xff0c;即test_xxx.py或xxx_test.py类&#xff0c;在第一点识别到的文件中的类&#xff0c;且满足一下任一条件&#xff1a; 1&#xff09;以Test_开头&#xff0c;且没有__init__()初始化函数的类&a…...

民国漫画杂志《时代漫画》第17期.PDF

时代漫画17.PDF: https://url03.ctfile.com/f/1779803-1248612629-85326d?p9586 (访问密码: 9586) 《时代漫画》的杂志在1934年诞生了&#xff0c;截止1937年6月战争来临被迫停刊共发行了39期。 ps:资源来源网络&#xff01;...

[AIGC] Spring Boot 2 自定义 Starter 指南

Spring Boot 包含一系列的 “Starter POMs”&#xff0c;它们都是一些方便的依赖描述符&#xff0c;你可以在你的应用中导入。在一些情况下&#xff0c;你可能想创建自己的自定义 starter。以下是创建自己的 Spring Boot Starter 的步骤。 文章目录 1. 创建基本的 Maven 项目2.…...

HCIP综合实验命令

目录 一、配置IP地址 二、配置DHCP 三、配置静态路由&#xff08;内网通&#xff09; 四、配置缺省路由 &#xff08;外网通&#xff09; 五、配置缺省 &#xff08;全网通&#xff09; 六、防环配置 七、配置远程登录 八、修改优先级 九、配置MP-GROUP 十、配置ppp进…...

JS移动端设置mouseover,mouseleave有效么

在移动设备的浏览器环境中&#xff0c;mouseover 和 mouseleave 事件的行为与桌面浏览器有所不同&#xff0c;主要是因为移动设备的交互方式主要是基于触摸的&#xff0c;而不是基于鼠标的。 在移动设备上&#xff0c;当用户触摸屏幕时&#xff0c;通常会触发 touchstart 事件…...

IAR9.30安装和注册相关

下载解压licpatcher64工具&#xff0c;把licpatcher64.exe拷贝到IAR的安装目录中双击运行。 示例IAR9.30.1默认安装如下如下&#xff0c;一共三个分别拷贝运行&#xff0c;不要遗漏。 C:\Program Files\IAR Systems\Embedded Workbench 9.1\arm\bin C:\Program Files\IAR Syst…...

HTTP Digest Access Authentication Schema

HTTP Digest Access Authentication Schema 背景介绍ChallengeResponse摘要计算流程总结参考 背景 本文内容大多基于网上其他参考文章及资料整理后所得&#xff0c;并非原创&#xff0c;目的是为了需要时方便查看。 介绍 HTTP Digest Access Authentication Schema&#xff…...

MySql超大Sql文件导入效率优化

对于MySQL中超大SQL文件的导入&#xff0c;效率优化是至关重要的&#xff0c;因为不当的操作可能导致导入过程耗时过长&#xff0c;甚至失败。以下是一些建议来优化MySQL超大SQL文件的导入效率&#xff1a; 调整max_allowed_packet参数&#xff1a; 这个参数定义了MySQL服务器和…...

【leetcode1944--队列中可以看到的人数】

有n人排成一个队列&#xff0c;从左到右编号为0到n-1&#xff0c;height数组记录每个人的身高&#xff0c;返回一个数组&#xff0c;记录每个人能看到几个人。 类比&#xff1a;山峰问题&#xff0c;高的后面的矮的看不见。 从后往前&#xff0c;最后一个元素入栈&#xff0c…...

基于51单片机的室内空气质量检测-仿真设计

本设计是基于单片机的空气质量检测设计&#xff0c;主要实现以下功能&#xff1a; 可实现通过SGP30测量二氧化碳及甲醛浓度&#xff0c;当超过设置的最大值时&#xff0c;进行报警及通风和净化空气处理 可实现通过MQ-4测量甲烷浓度&#xff0c;当超过设置的最大值时&#xff0…...

day22二叉树part08 | 235. 二叉搜索树的最近公共祖先 701.二叉搜索树中的插入操作 450.删除二叉搜索树中的节点

**235. 二叉搜索树的最近公共祖先 ** 这里利用上了二叉搜索树的特性&#xff0c;从上到下遍历&#xff0c;最近的公共祖先一定是满足p->val < root->val < q->val的 class Solution { public:TreeNode* lowestCommonAncestor(TreeNode* root, TreeNode* p, Tr…...

【Linux】Linux环境基础开发工具_2

文章目录 四、Linux环境基础开发工具2. vimvim的常见模式 未完待续 四、Linux环境基础开发工具 2. vim vim 是Linux下的一款 多模式编辑器 &#xff0c;可以用来写代码&#xff0c;是 vi 的升级版。 此时无法输入&#xff0c;需要切换模式。 如上图&#xff0c;i 就是切换成…...

长方形边框 上方中间有缺口 css

<div class"text_6">大234234师掌4234柜</div><div class"text-wrapper_1"><span class"paragraph_1">四川慧创云戈科技有限公司推出的“大师掌柜”&#xff0c;是一个以餐饮外卖为切入口&#xff0c;专注实体小店新零售…...

2024-05-29 架构-程序设计-思考

摘要: 最近在抽出时间做一个数据库的driver, 其中有些问题驱动的软件代码的思考&#xff0c;是很值得回味的。 做的系统&#xff0c;所思考的问题&#xff0c;所设计的解决方案&#xff0c;其实都是可以看作是对解决问题方式。而不仅仅是某个类库的API的使用&#xff0c;某个…...

关于网络的基础知识

大家好&#xff0c;在当今数字时代&#xff0c;网络已经成为我们生活中不可或缺的一部分&#xff0c;它连接着世界的每一个角落&#xff0c;让信息、资源和人们彼此之间无阻碍地交流和共享。然而&#xff0c;对于许多人来说&#xff0c;网络仍然是一个神秘而复杂的领域&#xf…...

CTF网络安全大赛简单web题目:eval

题目来源于&#xff1a;bugku 题目难度&#xff1a;简单 一道简单web的题目 题目源代码&#xff1a; <?phpinclude "flag.php";$a $_REQUEST[hello];eval( "var_dump($a);");show_source(__FILE__); ?> 这个PHP脚本有几个关键部分&#xff0c;但…...

Linux通过 SSH 使用 rsync 进行文件传输

目录 目的整体思路ssh建立连接A服务器上的操作输入 ssh-keygen 生成密钥对查看公钥 B服务器上的操作设置公钥认证 A服务器上的操作使用SSH登录进行测试 同步数据知识拓展SSH&#xff08;Secure Shell&#xff09;rsync&#xff08;Remote Sync&#xff09; 目的 使用SSH&#…...

【保姆级介绍下Foxmail 邮箱】

&#x1f308;个人主页: 程序员不想敲代码啊 &#x1f3c6;CSDN优质创作者&#xff0c;CSDN实力新星&#xff0c;CSDN博客专家 &#x1f44d;点赞⭐评论⭐收藏 &#x1f91d;希望本文对您有所裨益&#xff0c;如有不足之处&#xff0c;欢迎在评论区提出指正&#xff0c;让我们共…...

ABAP MD04增强排除MRP元素

场景 MD04跑出来很多MRP元素&#xff0c;用户想手工控制某些MRP元素不参与运算 分析 增强点还蛮好找的&#xff0c;控制MRP元素是否参与运算用下面的se19三代增强点就可以&#xff0c;打个断点看下MD04进的哪个增强点就行 旧版本的用这个&#xff1a;MD_CHANGE_MRP_DATA 新…...

PCIe配置寄存器详解:从枚举到设备驱动的完整流程(附常见问题排查)

PCIe配置寄存器深度解析&#xff1a;从硬件初始化到驱动加载的全链路实践指南 1. PCIe设备枚举的核心机制 PCIe设备的枚举过程是系统启动时最关键的硬件发现阶段。当主板通电后&#xff0c;CPU首先通过根联合体&#xff08;Root Complex&#xff09;发起总线扫描&#xff0c;这…...

OpenClaw配置备份指南:Qwen3.5-4B-Claude-4.6-Opus-Reasoning-Distilled-GGUF模型参数迁移方案

OpenClaw配置备份指南&#xff1a;Qwen3.5-4B-Claude-4.6-Opus-Reasoning-Distilled-GGUF模型参数迁移方案 1. 为什么需要备份OpenClaw配置 上周我的主力开发机突然硬盘故障&#xff0c;导致精心调校三个月的OpenClaw配置全部丢失。最痛心的不是框架重装&#xff0c;而是那些…...

Wan2.2-I2V-A14B开发者实践:基于FastAPI封装私有视频生成服务

Wan2.2-I2V-A14B开发者实践&#xff1a;基于FastAPI封装私有视频生成服务 1. 镜像概述与核心优势 Wan2.2-I2V-A14B是一款专为文本到视频生成任务优化的私有部署镜像&#xff0c;特别针对RTX 4090D 24GB显存显卡进行了深度优化。这个镜像将帮助开发者快速搭建私有视频生成服务…...

AI读脸术应用案例:智能相册自动标注年龄性别

AI读脸术应用案例&#xff1a;智能相册自动标注年龄性别 1. 引言&#xff1a;从海量照片到智能管理 你是否也有这样的烦恼&#xff1f;手机或电脑里存了成千上万张照片&#xff0c;想找一张特定人物的照片&#xff0c;却要花费大量时间一张张翻看。尤其是家庭相册&#xff0c…...

实战演练:基于kimi与快马平台快速开发一个交互式销售数据可视化看板

今天想和大家分享一个实战项目&#xff1a;如何用Kimi和InsCode(快马)平台快速搭建一个销售数据可视化看板。整个过程比我预想的顺利很多&#xff0c;特别适合需要快速验证业务需求的场景。 项目背景与需求拆解 最近在帮朋友的小型电商团队优化运营流程&#xff0c;他们最头疼…...

深入解析D触发器与分频器:时序逻辑的核心构建块

1. D触发器&#xff1a;数字世界的记忆单元 第一次接触D触发器时&#xff0c;我把它想象成一个会"记住"当前状态的小盒子。这个看似简单的元件&#xff0c;却是构建复杂数字系统的基石。D触发器全称Data触发器&#xff0c;属于边沿触发器件&#xff0c;这意味着它只…...

自定义默认提示词:PandaWiki 问答 “一键贴合业务”,企业降本增效新方案

深耕企业数字化与知识管理 7 年&#xff0c;服务过数百家中大型企业&#xff0c;发现企业知识库普遍存在三大核心痛点&#xff1a;AI 问答泛化、风格混乱、效率低下、人力成本高。PandaWiki 的自定义默认提示词功能&#xff0c;搭配多平台客服 开源可控&#xff0c;为企业提供…...

【深度强化学习】DDPG算法在连续动作空间中的实战解析

1. DDPG算法初探&#xff1a;为什么我们需要它&#xff1f; 第一次接触DDPG&#xff08;Deep Deterministic Policy Gradient&#xff09;算法时&#xff0c;我完全被这个拗口的名字吓到了。但当我真正理解它的设计初衷后&#xff0c;才发现它其实解决了一个非常实际的问题——…...

用华为ENSP模拟器复现智慧小区网络:从VLAN划分到三层架构的保姆级配置教程

华为ENSP模拟器实战&#xff1a;智慧小区网络从零搭建全流程指南 当你第一次拿到智慧小区网络设计方案时&#xff0c;那些抽象的拓扑图和配置参数是否让你望而生畏&#xff1f;作为网络工程师成长路上的必经之路&#xff0c;企业级网络搭建从来不是纸上谈兵的游戏。本文将带你用…...

告别低效循环:利用快马平台智能生成向量化代码,提升数据处理性能

最近在做一个数据分析项目时&#xff0c;遇到了性能瓶颈。处理一个几十万行的数据集时&#xff0c;简单的循环操作竟然要跑好几分钟。经过一番摸索&#xff0c;我发现向量化操作真是个神器&#xff0c;今天就分享一下如何用NumPy和Pandas来提升数据处理效率。 首先我们创建一个…...