js对DOM 的操作

news/2025/1/13 22:33:28/文章来源:https://www.cnblogs.com/imlaoxie/p/18669553

js操作的DOM 可以分为三个类型
1.属性操作
2.css类
3.样式

首先列举一下js获取DOM的方法

访问单个元素的方法
document.querySelector()
document.getElementById()
访问所有元素的方法
document.querySelectorAll()
document.getElementsByClassName()
document.getElementsByTagName()

一.修改属性
属性是包含有关 HTML 元素的附加信息的值。 它们通常以 名称/值 对的形式出现,并且可能是必不可少的,具体取决于元素。

方法 描述 例子
hasAttribute() 返回 true 或 false 布尔值 element.hasAttribute('href');
getAttribute() 返回指定属性的值或 null element.getAttribute('href');
setAttribute() 添加或更新指定属性的值 element.setAttribute('href', 'index.html');
removeAttribute() 从元素中移除一个属性 element.removeAttribute('href');

二.修改css类
CSS 类用于将样式应用于多个元素,这与每个页面只能存在一次的 ID 不同。 在 JavaScript 中,我们有 className 和 classList 属性来处理类属性。

方法/属性 描述 例子
className 获取或设置类值 element.className;
classList.add() 添加一个或多个类值 element.classList.add('active');
classList.toggle() 打开或关闭课程 element.classList.toggle('active');
classList.contains() 检查类值是否存在 element.classList.contains('active');
classList.replace() 用新的类值替换现有的类值 element.classList.replace('old', 'new');
classList.remove() 删除类值 element.classList.remove('active');

三.修改样式
编辑样式的一种方法是使用 setAttribute()。

// 选中元素
const div = document.querySelector('div');// 设置样式
div.setAttribute('style', 'text-align: center');

但是,这将从元素中删除所有现有的内联样式。 由于这可能不是预期的效果,最好直接使用 style 属性

div.style.height = '100px';
div.style.width = '100px';
div.style.border = '2px solid black';

CSS 属性是用 kebab-case 编写的,它是用破折号分隔的小写单词。 需要注意的是,kebab-case CSS 属性不能用于 JavaScript 样式属性。 相反,它们将被替换为等效的驼峰式,即第一个单词是小写的,而所有后续单词都是大写的。 换句话说,我们将使用 textAlign 代替 text-align 作为 JavaScript 样式属性。

// Make div into a circle and vertically center the text
div.style.borderRadius = '50%';
div.style.display = 'flex';
div.style.justifyContent = 'center';
div.style.alignItems = 'center';

如果要对一个元素应用许多样式更改,最好的做法是将样式应用到一个类并添加一个新类。 但是,在某些情况下,修改内联样式属性是必要的或更直接的。

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

股票异动拉升中间过程状态分析和检测算法

一.股票异动拉升中间过程状态分析和检测算法将股票分为:空闲,开始,持续,快停,涨停五种状态:可以勾选的方式来筛选处于五种状态的股票,更加精准的找出开始拉升,持续拉升,快要涨停的股票,对于处于空闲状态或者已经涨停的股票可以先不关注。 添加图片注释,不超过 140 …

一篇文章搞懂unity编辑器中Event的rawType, type和GetTypeForControl

简介 Event.rawType就是初始的type,可以通过Event.Use()将rawType修改为EventType.Used。 Event.type是经过GUIClip过滤的rawType,如果事件触发时,鼠标位置位于当前GUIClip中,返回rawType,如果鼠标不在当前GUIClip中,则设置为EventType.Ignore Event.GetTypeForControl 相…

我反向操作鸽掉腾讯音乐,只因为觉的...

大家好,我是土哥。 之前有位同学,在土哥的辅导下,居然飘了,当腾讯酷我音乐 HR 看完他的简历后,想邀约他面试,他直接一口回绝了。给的理由如下:目前只想面腾讯 QQ 音乐或者腾讯内部的岗位大厂流程已经到 offer 审核阶段了基于上述两个条件,所以暂时放弃面试。 当土哥看到…

leetcode刷题记录(java)——参考代码随想录:数组 链表 哈希表

四、题目之:代码随想录 https://programmercarl.com/ (1) 代码随想录:数组 704. 二分查找 class Solution {public int search(int[] nums, int target) {if(target<nums[0] || target>nums[nums.length-1]){return -1;}int left = 0,right = nums.length-1;while(lef…

本以为PDD挂了,结果开了50万SSP

大家好,我是土哥。 2024 届校招已然落下帷幕,互联网大厂为将优秀人才招致麾下,纷纷使出浑身解数。在薪资待遇方面,更是各有千秋 。 这里给大家分享一位2024届求职的小伙伴,PDD 非技术岗拿到 50w 的 SSP offer~ 我盆友圈的一个粉丝,之前和土哥交流,说她投递的PDD 上海岗位…

Win32汇编学习笔记11.游戏辅助的实现

Win32汇编学习笔记11.游戏辅助的实现-C/C++基础-断点社区-专业的老牌游戏安全技术交流社区 - BpSend.net 游戏基址 游戏基址的概念游戏基址是保持恒定的两部分内存地址的一部分并提供一个基准点,从这里可以计算一个字节数据的位置。基址伴随着一个加到基上的偏移值来确定信息准…

黑狂野大数据2

--拉链表 --增量导入是没有overwrite 且加载的是最新分区的数据

others_shellcode 1

其实这题直接nc连一下就可以了。其实考的是系统调用来着 32位程序系统调用号用 eax 储存, 第一 、 二 、 三参数分别在 ebx 、ecx 、edx中储存。 可以用 int 80 汇编指令调用。 64位程序系统调用号用 rax 储存, 第一 、 二 、 三参数分别在 rdi 、rsi 、rdx中储存。 可以用 sys…

一篇解决编译原理大作业,基于Flex、Bison设计编译器(含语法分析树和符号表)

1.工具简单介绍 Flex 和 Bison 是编译器开发中常用的两个工具,分别用于生成词法分析器和语法分析器。它们通常一起使用,共同完成源代码的词法分析和语法分析工作。 Flex: Flex通过读取一个规则文件(通常是.l文件),这个文件中定义了一系列的模式和对应的动作。模式用于匹配…

python 删除txt的前三行并保存原文件

数据 #!usr/bin/env python # -*- coding:utf-8 _*- """@author:Suyue @file:raindrop.py @time:2025/01/$ {DAY} @desc: """ def remove_first_three_lines(file_path):# 读取原始文件的所有行with open(file_path, r, encoding=utf-8) as file…

P3586 [POI2015] Logistyka

P3586 [POI2015] Logistyka 题目描述 维护一个长度为 \(n\) 的序列,一开始都是 \(0\),支持以下两种操作:U k a 将序列中第 \(k\) 个数修改为 \(a\)。 Z c s 在这个序列上,每次选出 \(c\) 个正数,并将它们都减去 \(1\),询问能否进行 \(s\) 次操作。每次询问独立,即每次询…