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优步司机奖励政策(12月20日到12月27日)

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

  2. DATA 转 16 进制

    // 转 16进制 编码 NSData *data = [NSData dataWithBytes:(const void *)dataOut length:(NSUInteger)dataOutMo ...

  3. ATextAppearance.AppCompat.Small not found

    今天编译的代码的时候,刚才还是好的,后来吃个饭回来,就不行了. 报错如下: AGPBI: {"kind":"error","text":&q ...

  4. Android stdio build.gradle buildscript 里面的repositories 和allprojects里面 repositories 的区别

    第一段 buildscript 里面的 repositories 表示只有编译工具才会用这个仓库. 比如 buildscript 里面的 dependencies classpath 'com.and ...

  5. CC3200-LAUNCHXL驱动不能正常识别的问题

    1. 本次使用利尔达的CC3200底板,完全兼容官方CC3200-LAUNCHXL,如果上电之后驱动识别为2路串口,是有问题的.原因是FT2232外接的EEPROM没有烧写固件. 2. 安装FT_Pr ...

  6. 一个小白的测试环境docker化之路

    本文来自网易云社区 作者:叶子 学习docker搭建测试环境断断续续也有三个多月了,希望记录一下这个过程.常言道,总结过去,展望未来嘛~文章浅显,还望各位大神路过轻拍. 按照国际惯例,先说一下背景: ...

  7. SQL 怎么实现模糊查询?

    执行数据库查询时,有完整查询和模糊查询之分. 一般模糊语句格式如下: SELECT 字段 FROM 表 WHERE 某字段 LIKE 条件; 其中,关于条件,SQL提供了四种匹配模式: 一.%:表示零 ...

  8. Linux命令应用大词典-第3章 文本编辑器

    3.1 vi:文本编辑器 3.2 nano:编辑器 3.3 view:文办编辑器 3.4 ex:文本编辑器 3.5 ed:文本编辑器 3.6 red:文本编辑器 3.1 vi:文本编辑器 1.对文本创 ...

  9. mpvue笔记

    简介: mpvue 修改了 Vue.js 的 runtime 和 compiler 实现,为小程序开发引入 Vue.js 开发体验 我觉得就像scss一样,写的时候方便,最后还是要转成css文件 搭建 ...

  10. leetcode-数数并说

     数数并说     报数序列是指一个整数序列,按照其中的整数的顺序进行报数,得到下一个数.其前五项如下: 1. 1 2. 11 3. 21 4. 1211 5. 111221 1 被读作  " ...