DOM(Document Object Model 文档对象模型)

  一个web页面的展示,是由html标签组合成的一个页面,dom对象实际就是将html标签转换成了一个文档对象。可以通过dom对象中js提供的方法,找到html的各个标签。找到标签后就可以操作标签使页面动起来,让页面动起来。

一、获取标签

 // 直接获取标签
document.getElementById('i1'); // 获取id为i1的标签
document.getElementsByTagName('div'); // 根据标签名称获得标签数组
document.getElementsByClassName('c1');// 根据class属性获取标签的数组
document.getElementsByName('dsx'); // 根据name属性获取标签数组 // 间接获取标签
var demo = document.getElementById('inner1'); //通过id定位
demo.children[1]; //拿到demo下的所有子元素,返回的是一个数组,根据下标来定位是哪个子元素
demo.children[1].value = '大师兄';//给这个子元素赋值
demo.firstElementChild; //获取demo下第一个子元素
demo.lastElementChild ; //获取demo下最后一个子元素
demo.parentElement(); //找到demo的上一层标签
demo.parentElement.nextElementSibling;//找到demo上一层标签的下一个兄弟标签
//找到demo上一层标签的下一个兄弟标签的第三个子元素的第二个子元素
demo.parentElement.nextElementSibling.children[2].children[1];
demo.parentElement.previousElementSibling;//找到demo上一层标签的上一个兄弟标签
document.getElementsByClassName('pg-body')[0];//根据class获取标签,返回的是一个数组

二、操作标签

1、文本内容操作

 // innerHTML与innerText
demo.innerText; // 获取标签中的文本内容
demo.innerText = '文本框'; // 修改标签中的文本内容
demo.innerHTML; // 获取标签中的所有内容,包含html代码
demo.innerHTML = '<a href="http://www.imdsx.cn">大师兄</a>';// innerHTML可以将含有HTML代码的字符串变为标签 // input、textarea标签
demo.value; //获取input、textarea参数
demo.value = 'xx'; // 对input、textarea的内容进行赋值 //select标签
demo.value; //获取select标签的value参数
demo.value = '选项'; // 修改select选项
demo.selectedIndex; // 获取select标签的选项下标
demo.selectedIndex = 1; // 通过下标更改select的选项

2、操作样式

 var demo = document.getElementById('clst');
demo.className = 'inner tmp1'; //更改标签class属性
demo.classList; //获取样式数组
demo.classList.add('tmp1'); //添加样式
demo.classList.remove('tmp2'); //删除样式
var demo = document.getElementById('on');
demo.checked=true; //勾上复选框
demo.checked=false; //去掉勾选 //操作单独样式
style.xxx; //操作样式的粒度更加细化,操作单个样式属性,相当于在标签中增加一个style属性
demo.style.backgroundColor = 'red'; // 更改标签的backgroundColor属性
demo.style.display = ''; // 更改标签的display属性
// 在css中样式可以通过【-】进行连接,在JavaScript中,所有的【-】都被去掉,【-】后面的第一个字符大写

3、操作属性

 var demo = document.getElementById('r1');
demo.setAttribute('name','username');//设置属性,在标签中添加属性或自定义属性
demo.removeAttribute('name');//删除属性,在标签中删除指定属性
attributes;//获取标签的所有属性

4、创建标签

 //对象方式创建标签
var input = document.createElement('input');
input.style.height='100px';
input.style.width='100px';
input.setAttribute('name','username');
input.setAttribute('type','text');
input.setAttribute('class','inner');
input.setAttribute('value','testing');
//在父级标签内添加一个子标签对象,c为父级标签,input为子标签
var c = document.getElementById('create');
c.appendChild(input); //字符串方式创建标签
var d = document.getElementById('create');
d.insertAdjacentHTML('beforeBegin','<input type="text" value="testing" style="height: 100px; width: 100px;">');
beforeBegin //插入到获取到标签的前面
afterBegin //插入到获取到标签的子标签的前面
beforeEnd //插入到获取到标签的子标签的后面
afterEnd //插入到获取到标签的后面

三、绑定事件

1、直接绑定

直接在标签中绑定事件

 直接绑定
<input type="button" value="提交" style="float:left;margin-top: 16px" ondblclick="showValueD();">
//this代指当前这个操作的标签
<input type="button" value="提交" style="float:left;margin-top: 16px" ondblclick="showValueD(this);">
// function接收this,通过查找父级,兄弟,子级来定位操作的元素
function showValueD(ths) {
alert(ths.previousElementSibling.value);
}

2、间接绑定

通过JavaScript获取到需要绑定事件的标签,obj.onclick=function(){} 绑定事件

 间接绑定
var obj = document.getElementById('onmouse');
obj.onmouseover = function () {
obj.style.background = 'red';
}; // 间接绑定的this代指,getElementById找到的这个标签
var obj = document.getElementById('onmouse');
obj.onmouseout = function () {
this.style.background = '';
} //装逼绑定 支持同一个操作执行不同的两段代码
var obj = document.getElementById('onmouse');
obj.addEventListener('click', function () {
console.log(111)
}, false) onfocus() //获取光标时做操作
onblur() //失去焦点做操作
onclick() //单击时做操作
ondblclick() //双击时操作
onmouseover() //鼠标悬浮触发操作
onmouseout() //鼠标离开悬浮时触发操作

四、其他操作

 console.log(msg) //打印数据
alert() //弹框提示
confirm() //确认弹框,返回true or false
location.href //获取当前的url
location.href = 'http://www.imdsx.cn' //重定向
location.reload() //刷新
location.href = location.href //刷新

HTML学习之==>DOM操作的更多相关文章

  1. jquery学习笔记---Dom操作

    一.DOM操作的分类 DOM(document object model)是一种与浏览器.平台.语言无关的接口,使用该接口可以访问页面中的·所有组件.DOM的操作可以分为DOM Core.HTML-D ...

  2. Vue.js_础学习之DOM操作

    demo说明: 1.{{message}}                           --“Mustache” 语法(双大括号) 2.v-bind:属性名                   ...

  3. Javascript学习笔记二——操作DOM

    Javascript学习笔记 DOM操作: 一.GetElementById() ID在HTML是唯一的,getElementById()可以定位唯一的一个DOM节点 二.querySelector( ...

  4. javascript DOM 操作

    在javascript中,经常会需要操作DOM操作,在此记录一下学习到DOM操作的知识. 一.JavaScript DOM 操作 1.1.DOM概念 DOM :Document Object Mode ...

  5. 第25篇 jQuer快速学习(上)---选择器和DOM操作

    这个文章经历的时间比较长,不是因为jQuery比较难,而是东西比较多,真心是个体力活.所以本来想把jQuery做成一篇去写,但由于写的时候发现jQuery发现写成一篇的话过于长,对于阅读起来也不是一个 ...

  6. jQuery学习之旅 Item4 细说DOM操作

    jQuery-–DOM操作(文档处理) Dom是Document Object Model的缩写,意思是文档对象模型.DOM是一种与浏览器.平台.语言无关的接口,使用该接口可以轻松访问页面中所有的标准 ...

  7. jQuery学习笔记之DOM操作、事件绑定(2)

    jQuery学习笔记之DOM操作.事件绑定(2) --------------------学习目录------------------------ 4.DOM操作 5.事件绑定 源码地址: https ...

  8. jQuery学习之路(2)-DOM操作

    ▓▓▓▓▓▓ 大致介绍 jQuery作为JavaScript库,继承并发扬了JavaScript对DOM对象操作的特性,使开发人员能方便的操作DOM对象. ▓▓▓▓▓▓ jQuery中的DOM操作 看 ...

  9. HTML 学习笔记 JQuery(DOM 操作)

    一般来说,DOM操作分为三个方面,即:DOM Core(核心), HTML_DOM 和 CSS_DOM. 1.DOM Core DOM Core 并不专属于JavaScript,任何一种支持DOM的程 ...

随机推荐

  1. python爬取百度图片

    import requests import re from urllib import parse import os from threading import Thread def downlo ...

  2. 恢复HDFS文件删除后的方法

    HDFS 为我们提供了垃圾箱的功能,也就是当我们执行 hadoop fs -rmr xxx 命令之后,文件并不是马上被删除,而是会被移动到执行这个操作用户的 .Trash 目录下,等到一定的时间后才会 ...

  3. Min-max theorem

    wiki链接

  4. java 乱码

    https://blog.csdn.net/qq_27545063/article/details/81138722 https://blog.csdn.net/dachaoa/article/det ...

  5. ie下不支持placeholder 用jquery来完成兼容

    这是我的第一个博客,还是写点正经的,希望对做前端朋友有所帮助.最近在做的项目placeholder不兼容ie,这个可以兼容IE的输入框的HTML新增的placeholder的显示下面是代码:$( do ...

  6. oracle基本语句(第七章、数据库逻辑对象管理)

    索引.实体化视图.簇.散列簇.序列.同义词 1.创建表 CREATE TABLE <表名>(<列名1> <数据类型>,……); CREATE GLOBAL TEMP ...

  7. Redis 历史版本下载URL

    Redis 历史版本下载URL: http://download.redis.io/releases/ Redis和RedisClient 官网下载方式: https://blog.51cto.com ...

  8. 016:URL命名与反转URL

    为什么需要URL命名? 主要解决蛋疼url变化情况,比如:哪天项目经理或领导过来说,把login改成signin,把register改成signup等蛋疼的需求——因为一旦改了url后,相关视图函数里 ...

  9. Spring 4.2.2以上版本和swagger集成方案和踩过的坑

    因为公司使用的spring版本太高,在集成swagger的时候会存在一些问题,而网上的很多实例大多都是版本比较低的,为了是朋友们少才坑,我这边将集成的过程记录一下: 1. 引入spring.swagg ...

  10. windows7 中 wacom数位板如何关闭点击水波 和长按右键这两个特效

    就是点住笔尖不动,就会弹出右键,这个功能是微软操作系统具有的一项功能,,如果您感觉不便,可以按以下方法将其去掉: 1.打开"控制面板--笔和触摸--笔选项--按下并保持--设置": ...