Dom-直接 /间接选择器
Dom:Document Object Model的缩写, 把html转换成了文本对象.
1. 直接选择器
1、直接查找 document.getElementById 根据ID获取一个标签 document.getElementsByName 根据name属性获取标签集合 document.getElementsByClassName 根据class属性获取标签集合 document.getElementsByTagName 根据标签名获取标签集合
1. 找到标签
document.getElementById('i1') 获取单个元素,因为ID是不可能重复的,所以只能找到一个元素。
document.getElementsByTagName('div') 获取多个元素(列表)
document.getElementsByClassName('c1') 获取多个元素(列表)
document.getElementsByName
2. 操作标签
获取标签中的文本内容 innertext
示例:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<div id="i1">我是i1</div>
<a>909</a>
<a>我是中国人</a>
<a>sdfdfd</a>
</body>
</html>
运行:
document.getElementById('i1')
<div id="i1">我是i1</div>
document.getElementById('i1').innerText
"我是i1"
document.getElementById('i1').innerText='新内容'
"新内容"
document.getElementsByTagName('a')
(3) [a, a, a]
document.getElementsByTagName('a')[1]
<a>我是中国人</a>
document.getElementsByTagName('a')[1].innerText='I am Chinese'
"I am Chinese"
tags=document.getElementsByTagName('a')
(3) [a, a, a]
for(var i=0;i<tags.length;i++){tags[i].innerText=888;}
888
2. 间接选择器。sibling是兄弟姊妹的意思。
2、间接查找 parentNode // 父节点 childNodes // 所有子节点 firstChild // 第一个子节点 lastChild // 最后一个子节点 nextSibling // 下一个兄弟节点 previousSibling // 上一个兄弟节点 parentElement // 父节点标签元素 children // 所有子标签 firstElementChild // 第一个子标签元素 lastElementChild // 最后一个子标签元素 nextElementtSibling // 下一个兄弟标签元素 previousElementSibling // 上一个兄弟标签元素
示例:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<div>
<div></div>
<div>c1</div>
</div>
<div>
<div></div>
<div id="i1">c2</div>
</div>
<div>
<div></div>
<div>c3</div>
</div>
</body>
</html>
运行结果:
tag=document.getElementById('i1')
<div id="i1">c2</div>
tag.parentElement
<div><div></div><div id="i1">c2</div></div>
tag.parentElement.children
(2) [div, div#i1, i1: div#i1]i1: div#i1length: 20: div1: div#i1__proto__: HTMLCollection
tag.parentElement.previousElementSibling
<div><div></div><div>c1</div></div>
3. 操作标签:
A-innerText: 获取标签中的文本内容, tag.innerText=" "
B-className:
tag.className: 直接整体做操作
tag.classList.add('样式名') 添加指定样式
tag.classList.remove('样式名') 删除指定样式
C-如下,点击的功能。
<div onclick='func()';>点我</div>
<script>
function func(){
}
</script>
4. 来个完整示例-----模态对话框。
z-index: 谁的值最大,谁就在最上面。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<style>
.hide{
display:none
}
.c1{
position:fixed;
left:0;
top:0;
right:0;
bottom:0;
background-color:black;
opacity:0.6;
z-index:9;
}
.c2{
width:500px;
height:400px;
background-color:white;
position:fixed;
left:50%;
top:50%;
margin-left:-250px;
margin-top:-200px;
z-index:10;
}
</style>
</head>
<body style="margin:0;">
<div>
<input type="button" value="添加" onclick="ShowModel();"/>
<table border="1px solid blue">
<thead>
<tr>
<th>主机名</th>
<th>端口</th>
</tr>
</thead>
<tbody>
<tr>
<td>1.1.1.1</td>
<td>191</td>
</tr>
<tr>
<td>1.1.1.2</td>
<td>192</td>
</tr>
<tr>
<td>1.1.1.3</td>
<td>193</td>
</tr>
</tbody>
</table>
</div> <!--遮罩层开始-->
<div id="i1" class="c1 hide"></div>
<!--遮罩层结束--> <!--弹出框开始-->
<div id="i2" class="c2 hide">
<p><input type="text"/></p>
<p><input type="text"/></p>
<p>
<input type="button" value="取消" onclick="HideModel();"/>
<input type="button" value="确定">
</p>
</div>
<!--弹出框结束--> <script>
function ShowModel(){
document.getElementById('i1').classList.remove('hide');
document.getElementById('i2').classList.remove('hide');
}
function HideModel(){
document.getElementById('i1').classList.add('hide');
document.getElementById('i2').classList.add('hide');
}
</script> </body>
</html>
运行结果:
点击取消后,对话框消失。
5. 精简版。运行有问题的时候,先检测一下是否所有的分号都写好了。
<!DOCTYPE html>
<html lang="en"> <head>
<meta charset="utf-8"/>
</head> <body>
<style>
.hide{
display:none;
}
.c1{
position:fixed;
left:0;
right:0;
top:0;
bottom:0;
background-color:black;
opacity:0.6;
z-index:9;
}
.c2{
width:400px;
height:400px;
background-color:white;
position:fixed;
left:50%;
top:50%;
margin-left:-200px;
margin-top:-200px;
z-index:10;
}
</style>
</body>
<input type="button" value="添加" onclick="func1();"/>
<div id='i1' class="c1 hide"></div>
<div id='i2' class="c2 hide">
<p><input type="text"/></p>
<p><input type="text"/></p>
<p>
<input type="button" value="确定"/>
<input type="button" value="取消" onclick="func2();"/>
</p>
</div>
<script>
function func2(){
document.getElementById('i1').classList.add('hide')
document.getElementById('i2').classList.add('hide')
} function func1(){
document.getElementById('i1').classList.remove('hide')
document.getElementById('i2').classList.remove('hide')
}
</script>
</html>
Dom-直接 /间接选择器的更多相关文章
- JavaScript--Dom间接选择器
一.Dom间接选择器 间接查找的属性 parentNode // 父节点 childNodes // 所有子节点 firstChild // 第一个子节点 lastChild // 最后一个子节点 n ...
- jQuery基础(样式篇,DOM对象,选择器,属性样式)
1. $(document).ready 的作用是等页面的文档(document)中的节点都加载完毕后,再执行后续的代码,因为我们在执行代码的时候,可能会依赖页面的某一个元素,我们要确保这个元素真 ...
- 2、jQuery操作Dom(过滤器与选择器)
1.属性选择器 <script language="JavaScript"> /** * <input type="button" value ...
- Dom直接选择器
Dom直接选择器 <!DOCTYPE html> <!--Dom间接选择器--> <html lang="en"> <head> & ...
- Dom选择器及操作文本内容
文档对象模型(Document Object Model,DOM)是一种用于HTML和XML文档的编程接口.它给文档提供了一种结构化的表示方法,可以改变文档的内容和呈现方式.我们最为关心的是,DOM把 ...
- Jquery第二篇【选择器、DOM相关API、事件API】
前言 前面已经介绍过了Jquery这门语言,其实就是一个javaScript的库-能够简化我们书写的代码-.本博文主要讲解使用Jquery定位HTML控件[定位控件就是获取HTML的标签],使用Jqu ...
- js dom操作选择器,dom操作复习
<!doctype html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- DOM选择器之元素选择器
DOM中元素选择器 在DOM中我们可以将元素选择器分为两类:1.元素节点选择器:2.其它节点选择器.通过选择器选择HTML中的元素以对其进行操作,以此实现用JS对页面的操作. 一.元素节点选择器 1. ...
- Dom深入浅出
Dom1级提供了一个Node接口,该接口将由Dom中所有节点类型(包括元素节点.文本节点.属性节点等12种)实现,而js是作为Node类型来实现的,js中的所有节点类型的继承自Node类型, 所以它们 ...
随机推荐
- STM32的GUI库使用
1. 实验平台使用百为的STM32F103开发板 2. 例程目录\百为stm32开发板光盘\stm32_gui_lib\Project\Embedded_GUI_Example\EWARM 3. 直接 ...
- SQLite FTS3/FTS4与一些使用心得
此文已由作者王攀授权网易云社区发布. 欢迎访问网易云社区,了解更多网易技术产品运营经验. 简介 对于今天的移动.桌面客户端应用而言,离线全文检索的需求已经十分强烈,我们日常使用的邮件客户端.云音乐.云 ...
- android学习十 ActionBar
1.api level大于等于11 支持,或者使用兼容库,但兼容库的问题很多. 2.一个操作栏属于一个活动,并具有其生命周期 3.操作栏分3类:a.选项卡操作栏,b.列表操作栏,c.标准操作栏 4.获 ...
- 使用分治法求X的N次方,时间效率为lgN
最近在看MIT的算法公开课,讲到分治法的求X的N次方时,只提供了数学思想,于是自己把代码写了下,虽然很简单,还是想动手写一写. int powerN(int x,int n){ if(n==0){ r ...
- 2019年猪年海报PSD模板-第八部分
11套精美猪年海报,免费猪年海报,下载地址:百度网盘,https://pan.baidu.com/s/1Y3wc_r7O-Dp0mLCihJ9mtQ
- 使用pycharm软件配置数据库可视化
必须品: pycharm软件,专业版最好自带就有,社区版就需要安装下插件. 专业版直接会在右边的编辑框浮动,直接点开就可以配置. 如图所示,点开就可以配置相应的数据库, 点开配置完毕就可以使用了. 还 ...
- lintcode 二分查找
题目:二分查找 描述:给定一个排序的整数数组(升序)和一个要查找的整数target,用O(logn)的时间查找到target第一次出现的下标(从0开始),如果target不存在于数组中,返回-1. c ...
- leetcode9_C++判断一个整数是否是回文数
判断一个整数是否是回文数.回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数. 示例 1: 输入: 输出: true 示例 2: 输入: - 输出: false 解释: 从左向右读, 为 - ...
- Java算法2
实现一个函数,将一个字符串中的每个空格替换成“%20”.例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy. 分析:若从前向后遍历的话,那Happy后面 ...
- numpy切片和布尔型索引
numpy 标签(空格分隔): numpy 数据挖掘 切片 数组切片是原始数组的视图.这意味着数据不会被复制,视图上的任何修改都会直接反映到源数组上 In [16]: arr Out[16]: arr ...