JavaScript中操作节点
1、获取节点
1.1、用 getElement 方法获取
获取元素节点时,必须等到DOM树加载完成后才能获取。两种处理方式:(1)将JS写在文档最后;(2)将代码写入window.onload函数中;
//通过ID来查看元素属性
var li = document.getElementById("first");
//通过类名来查看元素属性,返回元素数组
var lis1 = document.getElementsByClassName("cls");
//通过名字来查看元素属性,返回数组
var lis2 = document.getElementsByName("name");
//通过标签名来查看元素属性,返回数组
var lis3 = document.getElementsByTagName("li");
这一系列方法,也可以先选中一个DOM节点,在从选中的DOM节点的子节点里,选择需要的节点:
document.getElementById("div1").getElementsByTagName("li")[0];
1.2、用 querySelector 方法获取
querySelector() 方法仅仅返回匹配指定选择器的第一个元素。
var dq1 = document.querySelector("#id");
querySelectorAll() 方法返回文档中匹配指定 CSS 选择器的所有元素,返回 NodeList 对象。
var dqs1 = document.querySelectorAll("#div1 li");
2、查看设置属性(getAttribute、setAttribute)
attributes: 获取当前节点的所有属性节点。 返回数组格式。
document.getElementsByTagName("a")[0].getAttribute("target"); //element.setAttribute("属性名","属性值");
document.getElementsByTagName("INPUT")0].setAttribute("type","button");
3、设置样式
使用setAttribute设置class和style。
document.getElementById("first").setAttribute("class","class1");
document.getElementById("first").setAttribute("style","color:red;");
使用 className设置元素类名
document.getElementById("first").className = "class1";
使用 style 样式 直接修改单个样式。注意样式名必须使用驼峰命名法。
document.getElementById("first").style.fontSize = "18px";
使用 style 或 style.cssText 设置样式:
// IE不兼容
document.getElementById("first").style = "color:red;";
//cssText 属性用于设置或者返回元素声明的内联样式。
document.getElementById("first").style.cssText = "color:red;";
4、设置文本节点
innerHTML:取到或设置一个节点中的HTML代码。
innerText:取到或设置一个节点中的文本,会判断HTML标签样式,如果该标签隐藏,则该标签文本不会输出
<div class="container">
aaaa
<h1 class="h1 h2">container里的标题1</h1>
<h2 style="display: none">隐藏内容</h2>
bbbb
</div>
let cont = document.getElementsByClassName('container')[0];
console.log(cont.innerHTML);
//输出:
// aaaa
// <h1 class="h1 h2">container里的标题1</h1>
// <h2 style="display: none">隐藏内容</h2>
// bbbb console.log(cont.innerText);
//输出:
//aaaa
//container里的标题1
//bbbb console.log(cont.textContent);
//输出:
//aaaa
// container里的标题1
// 隐藏内容
// bbbb
5、父子同胞节点
5.1、关于子节点的操作
childNodes: 获取当前节点的所有子节点(包括元素节点和文本节点)。
children: 获取当前节点的所有元素子节点(不包含文本节点)。
firstChild: 获取第一个子节点,包括回车等文本节点;
firstElementChild: 获取第一个元素节点。 不含文本节点;
lastChild: 获取最后一个子节点,包括回车等文本节点;
lastElementChild: 获取最后一个子节点,不含文本节点;
5.2、关于父节点的操作
parentNode: 获取当前节点的父节点。
5.3、关于同胞节点的操作
previousSibling: 获取当前节点的前一个兄弟节点,包括文本节点;
previousElementSibling: 获取当前节点的前一个元素兄弟节点;
nextSibling:获取当前节点的后一个兄弟节点,包括文本节点;
nextElementSibling:获取当前节点的后一个元素兄弟节点;
6、创建新增、删除替换节点
6.1、创建元素节点
document.createElement("div"); //创建元素节点
6.2、创建文本节点
document.createTextNode(text)
var btn=document.createTextNode("Hello World");
6.3、添加节点
往父节点添加子节点
document.getElementById("myList").appendChild(newItem); //在父节点的末尾添加子节点
document.getElementById("myList").insertBefore(newItem,existingItem); //在父节点中的某一已存子节点前面添加节点 existingItem 是指父节点中已经存在的子节点,插入的新节点就插在这个子节点的位置
6.4、删除节点
父节点.removeChild(子节点): 从父节点中,删除指定子节点。
父节点.replaceChild(新节点,老节点): 从父节点中,用新节点替换老节点。
JavaScript中操作节点的更多相关文章
- JavaScript中操作有些DOM时关于文本节点和元素节点的问题。
初学JavaScript时候,经常遇到需要操作的内容因为文本节点而使操作更麻烦或者不能达到效果. 例: <ul id="ull"> <li>111&l ...
- JavaScript中操作对象的属性
1.操作对象的属性 注意: 标签属性与DOM对象属性的相应关系: 绝大部分2者是同样的.如:imgobj.src属性相应<img src="" >中src属性,但也有例 ...
- JavaScript中操作数组的方法
JavaScript Array 对象 对数组操作的方法分为两种 一种是会改变原始数组的变异方法,还有一种是不会改变原始数组的非变异方法. 总结 巧记 Push() 尾部添加 pop() 尾部删除 U ...
- javascript DOM操作 节点的遍历
通过javascript的遍历可以由一个节点来查找它的子节点(childNodes).兄弟节点(nextSibling/previousSibling)和父节点(parentNode). 代码说明: ...
- JavaScript中DOM节点层次Text类型
文本节点 标签之间只要有一点内容都会有文本节点,包括空格 创建文本节点document.createTextNode() 可以使用 document.createTextNode 创建新文本节点 == ...
- javascript中操作元素属性
1. setAttribute():设置属性的值: getAttribute():得到属性的值: removeAttribute():移除属性: 2.offsetWidth:offsetWidth = ...
- JavaScript中的DOM及相关操作
一.什么是DOM JavaScript由ECMAScript.DOM和BOM三部分组成,其中DOM代表描述网页内容的方法和接口,即文档对象模型(Document Object Model).在网页上, ...
- JavaScript中的各种宽高以及位置总结
JavaScript中的各种宽高以及位置总结 在javascript中操作dom节点让其运动的时候,常常会涉及到各种宽高以及位置坐标等概念,如果不能很好地理解这些属性所代表的意义,就不能理解js的运动 ...
- JavaScript动态操作style
1.易错:修改元素的样式不是设置class属性,而是className属性.class是JS的一个保留关键字. 2.易错:单独修改样式的属性使用"style.属性名"3.注意在cs ...
随机推荐
- H3C CAS 介绍 & 基本概念
目录 目录 基本概念 H3C CAS 中的虚拟机 虚拟机中的虚拟设备 虚拟 CPU 的 3 种工作模式 虚拟网卡的 3 种类型 虚拟磁盘的三种类型 虚拟机辅助工具 CAS Tools 虚拟机外的虚拟设 ...
- crontab自动执行任务,失败原因记录
服务器上使用crontab部署这两个每分钟自动执行的命令.首先,这两个命令是之前的人部署的,在我接手之前,就一直在了的.根据命令,实际上应该是做到每分钟都执行一次脚本.但是实际操作中,却发现,其实并没 ...
- [Linux] 026 光盘 yum 源搭建
光盘 yum 搭建步骤 (1) 挂载光盘 $ mount /dev/cdrom /mnt/cdrom/ (2) 让网络 yum 源文件失效 $ cd /etc/yum.repos.d/ $ mv Ce ...
- 中标麒麟V6.0安装 mysql-5.7.26-linux-glibc2.12-x86_64.tar.gz
在中标麒麟6.0上安装mysql, 1.先从官网(https://dev.mysql.com/downloads/mysql/5.7.html#downloads)下载 . 我的选择如上图. 2.下载 ...
- LibreOJ 6177 题解(状压DP)
题面 传送门 分析 刚看到这道题时想的是跟最短哈密顿路类似的二进制状压DP,先用floyd处理距离 但是此题用二进制不够,应该用三进制 0,1,2分别表示未送,正在送,已送完 dp[s][i]表示当前 ...
- CSS动画划入划出酷炫
HTML插入 <!DOCTYPE html> <html class="no-js iarouse"> <head> <meta char ...
- Codeforces - 1195D2 - Submarine in the Rybinsk Sea (hard edition) - 组合数学
https://codeforc.es/problemset/problem/1195/D2 很明显可以看出,任意一个长度为\(l_1\)的数串\(s_1\)和任意一个长度为\(l_2\)的数串\(s ...
- JVM(13)之 阶段回顾
开发十年,就只剩下这套架构体系了! >>> 各位小伙伴,到上一篇博文为止,我们的内存模型相关知识就已经讲完了!讲!完!了!不知道大家吸收了多少,这里我们简单的来回顾一下吧! ...
- 20191101php日期练习
<?phpecho abs(-23);echo "<hr/>";echo date("t");echo "<hr/>&q ...
- 关于微信小程序的一些总结
mpvue? {{}} 在vue和小程序中的区别? 01 小程序中{{}}和vue中的{{}}用法基本一致,可以显示data中的数据,可以写表达式 不一样的地方? 01 小程序的{{}}可以写在属性中 ...