前端开发-DOM
文档对象模型(Document Object Model,DOM)是一种用于HTML和XML文档的编程接口。它给文档提供了一种结构化的表示方法,可以改变文档的内容和呈现方式。我们最为关心的是,DOM把网页和脚本以及其他的编程语言联系了起来。DOM属于浏览器,而不是JavaScript语言规范里的规定的核心内容。
一 查找元素
1.1直接查找
document.getElementById 根据ID获取一个标签
document.getElementsByName 根据name属性获取标签集合
document.getElementsByClassName 根据class属性获取标签集合
document.getElementsByTagName 根据标签名获取标签集合
1.2间接查找
parentNode // 父节点
childNodes // 所有子节点
firstChild // 第一个子节点
lastChild // 最后一个子节点
nextSibling // 下一个兄弟节点
previousSibling // 上一个兄弟节点 parentElement // 父节点标签元素
children // 所有子标签
firstElementChild // 第一个子标签元素
lastElementChild // 最后一个子标签元素
nextElementtSibling // 下一个兄弟标签元素
previousElementSibling // 上一个兄弟标签元素
二、操作
2.1内容
innerText 仅仅文本 自动过滤内部标签
outerText
innerHTML HTML内容:包含文本和内本的浅表
innerHTML
value 值 input标签 文本框中的内容
select 选中的值 还有一个特有的selectindex
textarea
<input id="i1" type="text" onfocus="fecus()" onblur="blu()" value="请输入关键字">
<div>onfocus 也适用于tab键</div>
<div style="color: red">
<input type="text" placeholder="请输入关键字">
这种做法在目前只适合最新版本的浏览器,so目前推荐上面js的做法</div>
<script>
function fecus(){
var tag = document.getElementById('i1');
var val = tag.value;
if(val=="请输入关键字"){
tag.value='';
}
}
function blu() {
var tag = document.getElementById('i1');
var val = tag.value;
if(val.length==0){
tag.value='请输入关键字'; }
}
</script>
搜索框实现例子
2.2 样式操作
增加与删除样式
obj.className
obj.classList
classList.add()
classList.remove()
设置样式的属性
obj.style.color='red';
obj.style.fontSize='16px';
2.3 属性操作
获取属性
obj.attributes
NamedNodeMap {0: id, 1: type, 2: onfocus, 3: onblur, 4: value, 5: class, 6: style, length: 7}
添加属性
obj.setAttribute('id','id1')
删除属性
obj.removeAttribute('id')
2.4 创建标签 并添加到指定位置
创建标签有两种方法:1.通过字符串的方法 2.通过dom来穿件
ps:jqure中并不具有创建标签的办法,so这里需要掌握!
<script>
function addEle1() {
var tag = '<p><input type="text" </p>';
document.getElementById('i3').insertAdjacentHTML("beforeEnd",tag);
}
function addEle2() {
var tag=document.createElement('input');
tag.setAttribute('type','text')
tag.style.color='red';
tag.style.border='black 1px solid' var p=document.createElement('p');
p.appendChild(tag); document.getElementById('i3').appendChild(p)
}
</script>
两种创建标签的办法
2.5 实现表单的提交
在html中 需要使用 form中的 <input type='submit'> 来实现
在dom中,任何标签都可以显示表单的提交

2.6 其他操作
alert 弹出消息
console.log 在浏览器调试模式下输出
confirm('真的要删除吗') 弹框确定
//url操作
location.href 获取当前网址
location.href=' ' 重定向
location.reload() 页面刷新 //定时器
setInterval(‘fuction’,5000) 一直在执行
clearIterval( obj) 清除setInterval对象
setTimeout(‘fuction’,5000) 只执行一次,5s之后再执行
qq邮箱删除邮件,就使用了该技术
clearTimeout(obj) 与上个一样
<div id="i1"></div>
<input type="button" onclick="settime()" value="删除">
<script>
function settime(){
document.getElementById('i1').innerText='已删除';
setTimeout(function () {
document.getElementById('i1').innerText='';
},5000)
}
</script>
settimeout-case
三、事件
3.1 事件绑定方法
3.2 事件方法
前端开发-DOM的更多相关文章
- 前端开发工程师 - 03.DOM编程艺术 - 第1章.基础篇(下)
第1章.基础篇(下) Abstract: 数据通信.数据存储.动画.音频与视频.canvas.BOM.表单操作.列表操作 数据通信(HTTP协议) HTTP事务: 客户端向服务器端发送HTTP请求报文 ...
- [转载]Web前端开发工程师编程能力飞升之路
[背景] 如果你是刚进入web前端研发领域,想试试这潭水有多深,看这篇文章吧:如果你是做了两三年web产品前端研发,迷茫找不着提高之路,看这篇文章吧:如果你是四五年的前端开发高手,没有难题能难得住你的 ...
- web前端开发中常用的尺寸和位置
我们在日常web前端开发过程中,会经常用到各种尺寸和位置.通常是js做动画的时候.轮播图,滚屏动画,粒子,碰撞检测,拖拽,滚动加载等等.这里我将常用的尺寸和位置的获取进行总结,不包括canvas,SV ...
- 1. web前端开发分享-css,js入门篇
关注前端这么多年,没有大的成就,就入门期间积累了不少技巧与心得,跟大家分享一下,不一定都适合每个人,毕竟人与人的教育背景与成长环境心理活动都有差别,但就别人的心得再结合自己的特点,然后探索适合自己的学 ...
- web前端开发学习内容
应该 具备的 知识技能 :懂web标准,熟练手写 xhtml css3 并符合 符合w3c标准 代码能 兼容主流浏览器.ie6.7.8.9 ff 等. ...
- Web前端开发推荐阅读书籍
前言 前端工程师在中国兴起也就5年左右,以前公司里没有专门前端工程师的这个职位,很多前端方面的任务都是由全栈工程师来完成,有的基础一点的后台或者设计的帮助分担一些.但是随着互联网的快速发展,特别是所谓 ...
- Front End Developer Questions 前端开发人员问题(二)CSS 后续
问题来源:http://markyun.github.io/2015/Front-end-Developer-Questions/ 31.视差滚动效果,如何给每页做不同的动画?(回到顶部,向下滑动要再 ...
- Front End Developer Questions 前端开发人员问题(二)
问题来源:http://markyun.github.io/2015/Front-end-Developer-Questions/ 二.CSS 1.介绍一下标准的CSS的盒子模型?与低版本IE的盒子模 ...
- js/jquery/html前端开发常用到代码片段
1.IE条件注释 条件注释简介 IE中的条件注释(Conditional comments)对IE的版本和IE非IE有优秀的区分能力,是WEB设计中常用的hack方法.条件注释只能用于IE5以上,IE ...
随机推荐
- Java面向对象接口的应用实例练习
interface USB { public void open(); public void close(); } class Upan implements USB { public void o ...
- 2016 USP-ICMC-Codeforces-Gym101063C-Sleep Buddies Gym101063F-Bandejao Gym101063J-The Keys
Gym101063C-Sleep Buddies It is nighttime in the Earth Colony on Mars and everyone is getting ready t ...
- http://acm.hdu.edu.cn/showproblem.php?pid=1039(水~)
判读条件 1:有元音字母 2:不能三个连续元音或辅音 3.不能连续两个相同的字母,除非ee或oo #include<cstdio> #include<cstring> #inc ...
- PL/SQL 一个数据对象一个事务(rollback,submit)
/*********************************************** 一个数据对象一个事务(且记录错误信息到处理对象) ************************** ...
- Spark环境搭建(下)——Spark安装
1. 下载Spark 1.1 官网下载Spark http://spark.apache.org/downloads.html 打开上述链接,进入到下图,点击红框下载Spark-2.2.0-bin-h ...
- 启动redis
方法一:默认是前端启动 默认端口:6379 cd /usr/local/redis/bin/redis-server 方法二:后端启动 方法二:后端启动 然后进入 指定配置文件 [roo ...
- JavaScript变量声明与提升
一直以来对变量提升都是比较模糊的,今天特地看了一下这个知识点,总结一下. 1.举个最简单的例子来说一下什么是变量提升吧. function foo(){ console.log(x); // unde ...
- Win7如何分享局域网并设置共享文件夹账户和密码
https://jingyan.baidu.com/article/ceb9fb10ddf6c08cad2ba017.html 在办公或者其他场所,我们需要分享自己的文件给朋友或者同事,但又不想同一局 ...
- 用PHPMailer在本地win环境,可以接收到邮件和附件,但在linux环境只能接收邮件信息接不到附件,是我的路
解决了,Linux区分大小写问题
- 系列3|走进Node.js之多进程模型
文:正龙(沪江网校Web前端工程师) 本文原创,转载请注明作者及出处 之前的文章"走进Node.js之HTTP实现分析"中,大家已经了解 Node.js 是如何处理 HTTP 请求 ...