JavaScript选择器和节点操作
感谢:链接(视频讲解很清晰)
下文中讲解用到Chrome中的console调试台,如果不懂最好先看一下:链接
JavaScript选择器
作用:选取html中的标签等内容,最重要的还是为节点的操作(增删查改)做准备。
常用选择器:
1、id选择器(document.getElementById( );)
例如从下面的网页中找到 id='d0 ' 的标签:
<body>
<div id="d0" class="div">这是一个div</div>
<script type="text/javascript">
var getDiv=document.getElementById('d0');
console.log('getdiv');
</script>
</body>
运行截图:(通过上面的函数直接就能把获取到的标签内容存入getDiv中)
2、class选择器(getElementsByClassName();)
实现和上面一样的例子,但由于id在整个html中只有一个但class不同,所以如果存在多个classname满足选择条件会将他们存入一个数组中。
例如:
<body>
<div id="d0" class="div">这是一个div0</div>
<div id="d1" class="div">这是一个div1</div>
<div id="d2" class="div">这是一个div2</div>
<div id="d3" class="div">这是一个div3</div>
<script type="text/javascript">
var getDiv=document.getElementsByClassName('div');
console.log(getDiv);
</script>
</body>
运行截图:(把数组展开如下)
也可以给getdiv加下标来获取特定的标签:
3、其它选择器(document.querySelector();document.querySelectorAll();)
注:该选择器兼容性差,但操作简单便于实现。
红框中的内容说明这个选择器的括号中要加的是css选择器,即:如果要选id就用'#', class就用' . ' 。
运行截图:
节点操作:
上面讲解的js选择器就是在给节点操作做准备,因为只有先找到该节点才能操作。
1、查找:
就不需要说了,上面js选择器的作用就是这个。
2、增加:(document.createElement();)
<body>
<div id="d0" class="div">这是一个div0</div>
<script type="text/javascript">
var p=document.createElement('p');
p.innerHTML="这是一个p标签";
</script>
</body>
但运行之后div标签没变化,为什么?
因为这个函数只是先申请一个p ,就算要加上p标签他也不知道往哪加,所以还需要一个函数(*.appendChild(p);) , 其中*代表js选择器选择的要增加的位置。
<body>
<div id="d0" class="div">这是一个div0</div>
<script type="text/javascript">
var p=document.createElement('p');
var getDiv=document.getElementById('d0');
//若通过class属性获得了位置不唯一,会报错,因为appendChild函数只能给一个标签添加子标签
p.innerHTML="这是一个p标签";
getDiv.appendChild(p);
</script>
</body>
运行截图:(可以看到div下多了个p标签)
3、删除:
函数:*1.removeChild(*2);其中*1,*2为父子关系的两个标签
<body>
<div id="d0" class="div">
<p id='p0'>这是一个p标签</p>
</div>
<script type="text/javascript">
var getDiv=document.getElementById('d0');
var getP=document.getElementById('p0');
getDiv.removeChild(getP);
</script>
</body>
运行截图:
4、修改(运用最广泛的一种节点操作)
a.与css中的style相关的修改:
<body>
<div id="d0" class="div">
<p id='p0'>这是一个p标签</p>
</div>
<script type="text/javascript">
var getDiv=document.getElementById('d0');
getDiv.style.backgroundColor='red';
//注意与css中的style:background-color: red;的区别
getDiv.style.color='purple';
</script>
</body>
运行截图:
b.修改id或修改classname:
<body>
<div id="d0" class="div">
<p id='p0'>这是一个p标签</p>
</div>
<script type="text/javascript">
var getDiv=document.getElementById('d0');
getDiv.id='ddd';
</script>
</body>
修改成功:(classname同理)
JavaScript选择器和节点操作的更多相关文章
- 前端JavaScript之DOM节点操作
1.HTML DOM是啥 Document Object Model:定义了访问和操作HTML文档的标准方法,把HTML文档呈现为带有元素,属性和文本的树状结构 2.解析过程 HTML加载完毕,渲染引 ...
- JavaScript原生的节点操作
前言:原生是Javascript的基础,还是需要多多重视,时间长都忘记了,现在整理一下. 获取子节点 children 不是标准的dom属性,但是几乎被所有浏览器支持.不包含文本节点. 注意:在IE中 ...
- JavaScript之DOM节点操作
a.appendChild(b) 追加标签 a是b的父级,将b追加到a中 追加标签 a.insertBefore(b,c); a是b和c的父级,在c前面插入b 删除标签 a.removeCli ...
- javascript之表格节点操作
<html> <div class='add'> 名字: <input type="" name=""&g ...
- JS节点操作(JS原生+JQuery)
JavaScript与JQuery节点操作 节点关系与类型 任何HTML元素,都有nodeType属性.值有1~12,常用的有: 1.元素节点 2.文本节点 8.注释节点 9.document节点 ...
- JavaScript 节点操作Dom属性和方法(转)
JavaScript 节点操作Dom属性和方法 一些常用的dom属性和方法,列出来作为手册用. 属性: 1.Attributes 存储节点的属性列表(只读) 2.childNodes 存储 ...
- 使用HTML5的JavaScript选择器操作页面中的元素
<!doctype html><html lang="en"> <head> <meta charset="UTF-8& ...
- JavaScript -- 节点操作, 事件触发, 表单伸缩
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- JavaScript之DOM操作,事件操作,节点操作
1,DOM操作 1.1 概念 所谓DOM,全称Document Object Model 文档对象模型,DOM是W3C(World Wide Web Consortuum )标准,同时也定义了访问诸 ...
随机推荐
- BZOJ 1084DP
1084: [SCOI2005]最大子矩阵 Time Limit: 10 Sec Memory Limit: 162 MBSubmit: 2796 Solved: 1391[Submit][Sta ...
- 蓝桥杯 试题 算法提高 宰羊 DP解决
问题描述 炫炫回了内蒙,肯定要吃羊肉啦,所有他家要宰羊吃. 炫炫家有N只羊,羊圈排成一排,标号1~N.炫炫每天吃掉一只羊(这食量!其实是放生啦),吃掉的羊的邻居会以为它被放生了,然后又会告诉他们的邻居 ...
- js中时间戳和时间格式之间的转换
//时间格式转化 getNowDate(timestamp) { var date = new Date(timestamp); //时间戳为10位需*1000,时间戳为13位的话不需乘1000 va ...
- CSS3新子代选择器
:nth-child(n) 选择器匹配属于其父元素的第 N 个子元素,不论元素的类型,除了<h>标签. n 可以是数字.关键词或公式 例子一 <!DOCTYPE html> & ...
- unicode 的中文字符串,调用 isalnum()返回的是 True ?
描述 Python isalnum() 方法检测字符串是否由字母和数字组成. 语法 isalnum()方法语法: str.isalnum() 返回值 如果 string 至少有一个字符并且所有字符都是 ...
- linux高级应用第九章-正则表达式
笔记部分 基础正则表达式: ^ 第1个符号 ,以什么什么开头 ^m $ 第2个符号,以什么什么结尾 m$ ,还表示空行,或空格,可以用cat -An 试一下 ^$ 第3个符号,空行 ...
- unicode、encode、decode
1.encode与decode:unicode经过encode -> utf-8,反过来为decode. 爬虫读取网页内容和pandas读取csv时,会把读取到的文字内容转成unicode,当我 ...
- Rocket - tilelink - Broadcast
https://mp.weixin.qq.com/s/-pjCLzzincJz0Z66orx8kg 介绍Broadcast的实现. 1. 基本介绍 TLBroadcast实现的是 ...
- 【Linux】ntp服务-时间同步
ntp简易安装与时间同步 yum -y install ntp ntpdate //安装ntp服务 ntpdate cn.pool.ntp.org //更新时间 hwclock --systohc / ...
- Java实现 LeetCode 213 打家劫舍 II(二)
213. 打家劫舍 II 你是一个专业的小偷,计划偷窃沿街的房屋,每间房内都藏有一定的现金.这个地方所有的房屋都围成一圈,这意味着第一个房屋和最后一个房屋是紧挨着的.同时,相邻的房屋装有相互连通的防盗 ...