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-直接 /间接选择器的更多相关文章

  1. JavaScript--Dom间接选择器

    一.Dom间接选择器 间接查找的属性 parentNode // 父节点 childNodes // 所有子节点 firstChild // 第一个子节点 lastChild // 最后一个子节点 n ...

  2. jQuery基础(样式篇,DOM对象,选择器,属性样式)

      1. $(document).ready 的作用是等页面的文档(document)中的节点都加载完毕后,再执行后续的代码,因为我们在执行代码的时候,可能会依赖页面的某一个元素,我们要确保这个元素真 ...

  3. 2、jQuery操作Dom(过滤器与选择器)

    1.属性选择器 <script language="JavaScript"> /** * <input type="button" value ...

  4. Dom直接选择器

    Dom直接选择器 <!DOCTYPE html> <!--Dom间接选择器--> <html lang="en"> <head> & ...

  5. Dom选择器及操作文本内容

    文档对象模型(Document Object Model,DOM)是一种用于HTML和XML文档的编程接口.它给文档提供了一种结构化的表示方法,可以改变文档的内容和呈现方式.我们最为关心的是,DOM把 ...

  6. Jquery第二篇【选择器、DOM相关API、事件API】

    前言 前面已经介绍过了Jquery这门语言,其实就是一个javaScript的库-能够简化我们书写的代码-.本博文主要讲解使用Jquery定位HTML控件[定位控件就是获取HTML的标签],使用Jqu ...

  7. js dom操作选择器,dom操作复习

    <!doctype html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  8. DOM选择器之元素选择器

    DOM中元素选择器 在DOM中我们可以将元素选择器分为两类:1.元素节点选择器:2.其它节点选择器.通过选择器选择HTML中的元素以对其进行操作,以此实现用JS对页面的操作. 一.元素节点选择器 1. ...

  9. Dom深入浅出

    Dom1级提供了一个Node接口,该接口将由Dom中所有节点类型(包括元素节点.文本节点.属性节点等12种)实现,而js是作为Node类型来实现的,js中的所有节点类型的继承自Node类型, 所以它们 ...

随机推荐

  1. 北京Uber优步司机奖励政策(1月3日)

    滴快车单单2.5倍,注册地址:http://www.udache.com/ 如何注册Uber司机(全国版最新最详细注册流程)/月入2万/不用抢单:http://www.cnblogs.com/mfry ...

  2. UItraIso 制作ubentu 系统失败

    设备忙,请退出所有正在运行的应用程序,按确定按钮重试. 解决方法: 不要使用UItraIso,不知道为什么一直不行.重启了电脑几次都不行.用Rufus吧 https://rufus.ie/ 注意: r ...

  3. SpringBoot 基于lettuce 连接池 配置redis多数据源操作 生产配置

    添加pom<dependency> <groupId>org.apache.commons</groupId> <artifactId>commons- ...

  4. excell 导入 导出

    1.jar包 2.POIUtils工具类 package com.esstglobal.service.utils; import java.io.BufferedInputStream; impor ...

  5. UniMelb Comp30022 IT Project (Capstone) - 1.Android入门

    1. Android入门 Android系统架构 Android系统:四层架构.五块区域 1. Linux内核层 Linux Kernel:为Android设备的硬件提供了底层驱动 2. 系统运行库层 ...

  6. 376. Binary Tree Path Sum【LintCode java】

    Description Given a binary tree, find all paths that sum of the nodes in the path equals to a given ...

  7. Spark mlib的本地向量

    Spark mlib的本地向量有两种: DenseVctor :稠密向量 其创建方式 Vector.dense(数据) SparseVector :稀疏向量 其创建方式有两种: 方法一:Vector. ...

  8. C struct中的位域 bitfield

    C struct中的位域 bitfield 结构体的成员可以限制其位域,每个成员可以使用用比字节还小的取值范围,下面的结构体s1中,四个成员每个成员都是2bit的值(0~3),整个结构体占据的空间依然 ...

  9. Log Files

    Description Nikolay has decided to become the best programmer in the world! Now he regularly takes p ...

  10. 采用c#实现功能1

    看了好多c#的菜鸟教程不如自己开始动手打代码,最终实现了功能一,参考了网上的wordcount代码发现无论是c++还是c#大部分采用的是哈希表的方法实现的,本来还想仅用循环实现遍历句子中的所有字符,即 ...