1、dom有5个属性,属性内容如下

下面开始介绍Dom属性,一共有5个属性

1、document object:文档对象

2、element object:标签对象

3、test object:文本对象

4、attribute object:属性对象

5、comment object:注释对象

  

2、dom导航方法

Dom下面的导航方法
parentElement 父标签
Children 所有的子标签
firstElementChild 第一个子标签
lastElementChild 最后一个子标签
nextElementSibling 下一个兄弟标签
previousElementSibling 上一个兄弟标签

  

先看个实例

实例如下
<a href="#">百度一下</a>
<div id="div1">
<div>hello div</div>
<p>hello p</p>
</div>
<h1>hello h1</h1>
<script>
var ele = document.getElementById("div1") alert(ele.lastElementChild.nodeName) alert(ele.firstElementChild.nodeName) alert(ele.children)
注意:这里返回的是一个数组,可以通过下面的方法循环打印
var ele_sons = ele.children
for (var i = 0;i <= ele_sons.length;i++){
alert(ele_sons[i])
} alert(ele.nextElementSibling.nodeName) alert(ele.previousElementSibling.nodeName)
</script>

  

3、寻找对象的方式

3_1、全局查找

首先这是全局查找,在整个document中查找
通过id属性查找标签,因为id是全网唯一的,所以返回的结果就是一个标签
var ele = document.getElementById("div1") 通过class属性查找标签
var ele = document.getElementsByClassName("c1"),这里由于class属性不是全网唯一的,所以这里返回的不是一个标签,而是一个数据,计算class的标签
只有一个,他也是一个数组,需要通过索引来取具体的标签 通过标签的名字查找标签
var ele3 = document.getElementsByTagName()
通过标签名称查找的结果和class效果是一样的,都是一个数组 通过name属性的值来查找标签,同样也是返回一个数组,这个用的不多,常用的是上面的三种
var els3 = document.getElementsByName("sb")

  

3_2、局部查找

下面看下局部查找,就是查找指定标签下的标签
把上面的document替换为指定的ele也是可以的,这个就是局部查找 局部查找支持标签名称
<div class="c1">
<div id="c2">hello div
<p>这是一个子标签的p标签</p>
</div> <p class="c3" name="sb">hello p</p>
</div>
<script>
var ele = document.getElementById("c2")
var ele2 = ele.getElementsByTagName("p")
在ele2下面查找p标签 alert(ele2[0].innerText) </script> 局部对象查找不支持id查找
var ele3 = ele.getElementById("c4")
alert(ele3.nodeName) 这个会报错的
Uncaught TypeError: ele.getElementById is not a function 局部查找支持class查找
var ele4 = ele.getElementsByClassName("c5")[0];
alert(ele4.nodeName) 局部查找不支持name属性查找
var ele5 = ele.getElementsByName("c6")[0];
alert(ele5.nodeName) 这个会报错的
Uncaught TypeError: ele.getElementsByName is not a function

  

4、Dom事件介绍

Dom中的事件,比如我们上面的例子onclick,鼠标点击就会触发onclick事件

    onclick事件:鼠标单击会触发事件
ondblclick事件:鼠标双击会触发事件
onfocus事件:元素获得焦点的时候触发的事件,比如一个input输入框,当把鼠标点击输入框,输入就会获得焦点
onblur事件:元素失去焦点的时候触发的事件 下面用input标签写一个例子,默认input标签中有默认值,鼠标点击,默认值去掉,鼠标离开,默认值恢复
<input class="text" type="text" value="默认值" onfocus=func5() onblur=func6()> javascript的代码
function func5() {
var ret = document.getElementsByClassName("text");
ret[0].value = "";
}
function func6() {
var ret = document.getElementsByClassName("text");
ret[0].value = "默认值";
} onchange事件:一般用select标签中,如果select选中的标签被更改,则会触发该事件
<select onchange=func8()>
<option>背景</option>
<option>广州</option>
<option>深圳</option>
<option>湖南</option>
<option>内蒙古</option>
</select> onkeydown事件:按下键盘中的一个键触发的事件,比如我们按回车触发提交
<input type="button" value="键盘触发" onkeydown="func9()"> keycode事件:按下指定的键盘中的某个键触发的事件,用的时候自己查文档吧 onkeydown事件:键盘某个键被按下触发的事件 onkeyup事件:键盘某个键被松开触发的事件 onkeypress事件:键盘某个键被按下然后松开触发的事件 onload事件:一张页面或者一张图加载完成触发的事件 onmousedown事件:鼠标按下触发的事件 onmousemove事件:鼠标在标签的范围内移动就会触发的事件 onmouseout事件:鼠标离开区域,就会触发事件 onmouseover事件:鼠标进入区域,就会触发事件 onsubmit事件:这个事件必须给form标签绑定,submit标签提交数据的时候触发的事件,就比如我们向后台提交数据,前台先做校验,通过则提交,不通过则不让往后台提交,不通过则
return false阻止往后台提交数据 <form action="#" method="post" onsubmit=func1(event)>
姓名:<input id="id1" type="text" name="username">
年龄:<input id="id2" type="text" name="age">
<input type="submit" value="提交">
</form> javascript代码,有两种方法来实现
function func1(event) { alert("验证失败")
event.preventDefault()
// 阻止默认的行为 } 第二种方法
<form action="#" method="post" onsubmit="return func2()">
姓名:<input id="id3" type="text" name="username">
年龄:<input id="id4" type="text" name="age">
<input type="submit" value="提交">
</form> javascript代码
function func2() {
alert("验证失败");
return false;
} stoppropation事件:一般用在div标签中,阻止事件的延生,比如下面的例子
<div id="div1" onclick="func3()">
<div id="div2" onclick="func4()"></div>
</div> 在这个代码中,点击id为div2的标签会弹出div2和div1,但是如果我们想点击div2的时候只弹出div1,该怎么办呢?
function func3() {
alert("div1")
} function func4() {
alert("div2")
} 下面这个例子中使用 <div id="div1" onclick="func3()">
<div id="div2" onclick="func4(event)"></div>
</div> 在下面的代码中,点击id为div2的标签不会弹出div1的事件
function func4(event) {
alert("div5")
event.stopPropagation()
}

  

5、Dom实现增删查标签的效果

  5_1、先看下如何增删标签


只能通过一个父标签,然后通过这个父标签添加子标签
createElement()创建标签
appendChild()添加标签到指定的父标签的下面 删
只能通过一个父标签,然后通过这个父标签去删除子标签 removeChild():删除指定的子标签 下面的例子使用添加标签和删除标签的作用
<div id="div1">
<div id="div2">hello div2</div>
<p>hello p</p>
</div>
<input type="button" value="添加标签" onclick="func1()">
<input type="button" value="删除标签" onclick="func2()"> <script>
增加标签的函数
function func1() {
var father_ele = document.getElementById("div1");
var son_ele = document.createElement("p");
son_ele.innerText = "被添加的p标签";
son_ele.style.fontSize = "20px";
father_ele.appendChild(son_ele);
}
删除标签的函数
function func2() {
var father_ele = document.getElementById("div1");
var remove_ele = father_ele.lastElementChild;
father_ele.removeChild(remove_ele);
}
</script>

  5_2、在来看下如何修改标签

首先修改标签的文本内容

    改变文本内容
son_ele.innerHTML = "<a href='www.baidu.com'>百度一下</a>";
这个出来的效果是a标签,可以解析HTML标签 son_ele.innerText = "<a href='www.baidu.com'>百度一下</a>";
这个出来的效果是单纯的字符串,所以innerText只能添加文本,不会解析HTML标签

  

在来看下如何修改css样式

    改变css的样式

            我们可以做这样一个例子,鼠标点击事件会把字体的名字变大,或者变小,如果字体大小为10px,则把字体大小修改为30px,如果字体大小为30px,则修改字体大小为10px

            <p id="p1" onclick="func3()">测试修改字体属性</p>

            function func3() {
var ele = document.getElementById("p1"); if(ele.style.fontSize == "30px"){
ele.style.fontSize = "10px";
}else {
ele.style.fontSize = "30px";
}
}

  

我们还可以直接修改class属性的值

直接修改class属性
a、首先定义一个css样式
.big{
color: red;
font-size: 30px;
}
b、然后写html代码
<p id="p2" onclick="func4()">测试直接修改class属性</p> c、然后写javascript代码
function func4() {
var ele = document.getElementById("p2");
alert(ele.classList);
查看ele的class的信息 ele.classList.add("big");
添加class属性 alert(ele.classList) ele.classList.remove("big")
删除class属性 alert(ele.classList)
}

  

Dom对象总结介绍&事件介绍&增删查找标签的更多相关文章

  1. DOM标签操作与事件与jQuery查找标签

    目录 DOM之操作标签 创建标签对象 标签对象的属性 innerText与innerHTML 标签内部追加内容 属性操作 事件 常用事件 事件绑定 事件案例 jQuery简介 查找标签 基本选择器 属 ...

  2. jQuery动态创建的dom对象不能绑定事件的解决方法

    参照网上前辈: 方法一:绑定live事件 live(type,[data],fn) $(selector).live("click",function(){ alert(" ...

  3. jQuery对象与DOM对象

    jQuery对象与DOM对象是不一样的 可能一时半会分不清楚哪些是jQuery对象,哪些是DOM对象,下面重点介绍一下jQuery对象,以及两者相互间的转换. 通过一个简单的例子,简单区分下jQuer ...

  4. DOM对象和window对象

    本文内容: DOM对象 Window 对象 首发日期:2018-05-11 DOM对象: DOM对象主要指代网页内的标签[包括整个网页] 比如:document代表整个 HTML 文档,用来访问页面中 ...

  5. 轻松学习JavaScript二十七:DOM编程学习之事件模型

    在介绍事件模型之前,我们先来看什么是事件和什么是event对象. 一事件介绍 JavaScript事件是由訪问Web页面的用户引起的一系列操作,使我们有能力创建动态页面.事件是能够被 JavaScri ...

  6. DOM对象属性(property)与HTML标签特性(attribute)

    HTML中property与attribute是极易混淆的两个概念.大多数时候这两个单词都翻译为"属性",为了区分二者,一般将property翻译为"属性",a ...

  7. Dom对象和JQuery对象的详细介绍及其区别

    一直搞不清Dom对象和JQuery对象之间的区别,今天好好总结下 1.dom对象(摘抄自百度百科http://baike.baidu.com/link?url=4L8bZ7kW6kE-it4F-1LU ...

  8. jQuery介绍 DOM对象和jQuery对象的转换与区别

    jQuery介绍 DOM对象和jQuery对象的转换与区别 jQuery介绍      jQuery: http://jquery.com/      write less, do more.   j ...

  9. HTML DOM对象的属性和方法介绍(原生JS方法)

    HTML DOM对象的属性和方法介绍 DOM 是 Document Object Model(文档对象模型)的缩写. DOM(文档对象模型)是针对HTML和XML文档的一个API(应用程序编程接口), ...

随机推荐

  1. 触屏设备上的多点触碰检测C++代码实现

    转自:http://aigo.iteye.com/blog/2272698 代码还是参考自Epic官方的塔防项目:StrategyGame 看了下C++的API,现成的API中貌似只支持单点触碰检测, ...

  2. 10-17(day2)

    这次写day2的总结 T1:表达式 题面:给你一串表达式 在本题中,我们对合法表达式定义如下:1. 任何连续(至少1个)数字是合法表达式:2. 若x是合法表达式,则(x)也是合法表达式:3. 若x和y ...

  3. 【BZOJ】4517 [Sdoi2016]排列计数(数学+错排公式)

    题目 传送门:QWQ 分析 $ O(nlogn) $预处理出阶乘和阶乘的逆元,然后求组合数就成了$O(1)$了. 最后再套上错排公式:$ \huge d[i]=(i-1) \times (d[i-1] ...

  4. 学习MongoDB 三: MongoDB无法启动的解决方法

    一简介 我们之前介绍了MongoDB入门(安装与配置),我们今天在打开MongDB时,我们先运行cmd.exe进入dos命令界面,然后进入cd  D:\mongodb\bin目录下,启动服务或者mon ...

  5. 代码生成器 CodeSmith 的使用(五)

    在上一篇的版本中,我们使数据库中的单个表 生成 PetaPoco 构架下的 ORM 映射,这次呢,要使数据库中的所有的表 生成 PetaPoco 构架下的 ORM 映射. 首先来看完整的 Camel ...

  6. 知乎日报 API的图片盗链问题

    由最近 基于vue的知乎日报单页应用 引发的问题 以及问题解决历程 通过 知乎日报API 基于vue做一个知乎日报的单页应用,在获取图片时存在一个图片盗链问题,图片无法加载 提示 403 错误, 最终 ...

  7. 通过python给mysql建表

    一.python连接mysql from sqlalchemy import create_engine # 数据库数据 HOSTNAME = '127.0.0.1' # linux本地 PORT = ...

  8. 数据库之Mysql高级

    简介 实体与实体之间有3种对应关系,这些关系也需要存储下来 在开发中需要对存储的数据进行一些处理,用到内置的一些函数 视图用于完成查询语句的封装 事务可以保证复杂的增删改操作有效 关系 创建成绩表sc ...

  9. python入门-文件

    1 读取文件 with open('1.txt') as file_ojbect: contents = file_ojbect.read() print(contents.rstrip()) wit ...

  10. 基于二进制RPC协议法的轻量级远程调用框架 ---- Hessian

    使用Java创建Hessian服务有四个步骤: 1.创建Java接口作为公共API                             (client和server端 创建一个相同的借口) 2.使 ...