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. php array_flip() 删除数组重复元素——大彻大悟

    1. php array_flip() 删除数组重复元素,如果用于一维索引数组,好理解. [root@BG-DB:~]$more arr.php  <?php         $arr = ar ...

  2. CentOS 7.3 CDH 5.10.0 Druid0.12.4安装记录

    CentOS 7.3 CDH 5.10.0安装记录 0. 集群规划192.167.1.247 realtime247 realtime+hadoopdata192.167.1.248 broker24 ...

  3. PreApplicationStartMethodAttribute的使用

    先预备一个类,用于Start时调用 public static class MyPreApplicationStart { public static void RegisterGlobalFilte ...

  4. C# webbrowser实现百度知道团队邀请助手!

    [百度知道团队邀请助手] 是您快速提高百度知道团队成员数和团队排名的利器! 主要功能: 1.运用C#自带的webbrowser自动登录百度: 2.自动采集请在C#.Net分类排名下的所有用户,邀请这些 ...

  5. js基础和运算符

    1.什么JavaScript?    运行环境 :    浏览器                    是一种具有安全性的客户端的脚本语言     用来实现与web页面交互 脚本语言:语言嵌入到htm ...

  6. Python数据分析_Pandas01_数据框的创建和选取

    主要内容: 创建数据表 查看数据表 数据表索引.选取部分数据 通过标签选取.loc 多重索引选取 位置选取.iloc 布尔索引 Object Creation 新建数据 用list建series序列 ...

  7. Python生态圈

    WEB开发——最火的Python web框架Django, 支持异步高并发的Tornado框架,短小精悍的flask,bottle, Django官方的标语把Django定义为the framewor ...

  8. IPv4检验和计算

    IP分组中的检验和仅覆盖首部,而不管数据,首部被划分为16位的段,把所有段相加,结果取反,塞进首部检验和里 在目的主机中,首部划分为16位,相加,结果肯定是16个1,然后取反,结果为0.如下 在目的主 ...

  9. 最近开始研究php的缓存技术,来个系统自带的OPcache

    最近开始研究php的缓存技术,来个系统自带的OPcache php5.5以上版本  系统自带 PHP5.2-5.4 可通过扩展来安装 OPcache是 zend出品  比apc的优势在于  长期更新 ...

  10. jpa summary

    JPA Prepared by: John Tan March, Contents what Where to use JPA Difference between JPA and Mybatis 1 ...