前端笔记-dom
dom(document object model)
-文档对象模型,包含整个页面所有功能,可以通过调用方法的形式来操作页面,所以js和dom结合在一起可以写一些逻辑性的语言
dom的对象 dom有5个对象
document 文档对象(重要),文档即页面
element object 标签对象(重要)
text object 文本对象
attrbute object 属性对象
comment object 注释对象
dom定位(在后续ui测试过程中,用selenium定位不到元素时可以用dom定位)
通过id定位(带s取所有)
document.getElementsById('123')
通过class定位(带s取所有)
document.getElementsByClassName('inner')
通过标签名定位(带s取所有)
document.getElementsByTagName('input')
通过name值定位(带s取所有)
document.getElementsByName('xxxx')
通过层级关系定位
var tmp = document.getElementById('inner1') 把查找id赋值给tmp变量
tmp.nodename 标签名
tmp.nodetype 内置标签类型号,没什么用
tmp.nodevalue 标签value值,默认为空
tmp.firstchird 第一个对象内容,可以是换行符或缩进,存在文档中的内容都可以会被返回
tmp.lastchild 最后一个对象内容
tmp.childNodes 所有对象内容
tmp.parenNode 节点(元素)的父节点,直接使用parentElement,以上方法不实用
tmp.chirdren 其变量的子元素,tmp.chirdren[0]如果有多个值取其下标
tmp.firstElementChild 取其第一个元素
tmp.lastElementChild 取其最后一个元素
tmp.parentElement 取其元素的父类元素
tmp.nextElementSibling 取其下一个相邻的标签元素(兄弟标签)
tmp.previousElementSibling 取其上一个相邻的标签元素(兄弟标签)
dom操作(在dom中你只要能获取到值就能修改)
input标签操作:
var tmp = document.getElementById('inner1').lastElementChild
tmp.value 获取到input框值是“ ” ,此时在输入值,输入tmp.value就能获取该值
tmp.lastElementChild.value='123' 在页面中也显示了该值,dom命令和页面的交互的
innerText 修改目标元素的文本内容 如果赋值的内容 <p></p>包含标签的字符串,依旧会以字符串的形式存储
innerHtml 如果赋值的内容 包含标签的字符串 他会直接转成标签元素<p></p>
select标签操作:
s1.value='xxxx' value值操作
s1.selectedIdex=2 selectedIdex下标操作,下标按数组取值
通过字符串操作css样式:
tmp="样式表中内容"
通过list方式操作css样式:
tmp.classlist 查看当前样式表下标和字符串
tmp.classlist.remove('xxx1') 删除字符串样式
tmp.classlist.add('xxx2') 增加字符串样式
直接通过style属性进行修改:
tmp.style.width='200px' 修改宽度
补充:
在html中css样式的时候写 style="background-color:red"
在dom命令中写css样式的时候写(dom不解析“-”,去"-"后面字母变成大写) tmp.style.backgroundColor='red'
dom操作原标签中的style属性
删除属性
xxx.removeAttribute('value')
添加属性
xxx.setAttribute('value','xxxxxxx') 通过字典的取值方式xxx.setAttribute[0]
创建标签
1.对象创建
document.createElement('xxx') 再通过setAttribute添加属性,只能一个一个添加
获取添加父类位置
div.appendChild(xxxx) 向当前div增加xxxx
2.字符串创建
var input = "<input type='text' value='xxx' id='xxxxx'>" 定义一个字符串
获取添加父类位置
div.insertAdjacentHTML("beforeBegin",input) 参数"beforeBegin"插入到获取标签的前面
div.insertAdjacentHTML("afterBegin",input) 参数"afterBegin"插入到获取到子标签的前面
div.insertAdjacentHTML("beforeEnd",input) 参数"beforeEnd"插入到获取到子标签的后面
div.insertAdjacentHTML("afterEnd",input) 参数"afterEnd"插入到获取标签的前面
event事件 事件也相当与一个function
onclick 单击事件var a.onclick = function (){alert("aaa");}当点击按钮后会弹出提示框 ondblclick双击
onfocis/onblur 获取焦点/失去焦点
onkeydown 某个键盘按键被按下,应用场景,登录时回车
onchange 当内容发生改变就会触发,如三级联动
onload onload事件会在游览器加载完成后才会触发,在head中加入window.load = function (){alert("aaa");}
onmouseover 当鼠标进入时触发
onmouseout 当鼠标离开时触发
onmousemove 当鼠标移动时触发
onmousedown 当鼠标被按下时触发
onselect 文本被选中
onsubmit 确认按钮被点击,与form标签绑定
方式一:
<form id='form' onsubmit='return check()'>
xxxxxx
</form>
<script>function check(event){alert('验证失败');return false;}</script>
方式二:
var a = document.getElementByid('form')'';
a.onsubmit= function(event){ event.preventDefault() } //preventDefault阻止form生成
绑定事件两种方式
1. <div id='id1' onclick='func()'></div>直接通过属性绑定
2. var obj = document.getElementsByClassName('inner')[0]
obj.onclick = function(){alert('1234')} 与html脱离,写在js中更加隐秘
事件传播
对象.stopPropagation() 阻止事件向外层div传播
版权声明:本文原创发表于 博客园,作者为 RainBol本文欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则视为侵权。
前端笔记-dom的更多相关文章
- 2.前端笔记之css
title: 1.前端笔记之CSS date: 2016-04-05 23:05:51 tags: 前端 categories: w3c --- 作者:刘耀 **出处:http://www.liuya ...
- 1.前端笔记之html
title: 1.前端笔记之HTML date: 2016-04-04 23:21:52 tags: Python categories: Python --- 作者:刘耀 **出处:http://w ...
- 写给后端的前端笔记:浮动(float)布局
写给后端的前端笔记:浮动(float)布局 这篇文章主要面向后端人员,对前端有深刻了解的各位不喜勿喷. 起因 前一阵子我一个后端的伙伴问我,"前端的左飘怎么做?",我立马就懵了,& ...
- 写给后端的前端笔记:定位(position)
写给后端的前端笔记:定位(position) 既然都写了一篇浮动布局,干脆把定位(position)也写了,这样后端基本上能学会css布局了. 类别 我们所说的定位position主要有三类:固定定位 ...
- 前端笔记知识点整合之JavaScript(三)关于条件判断语句、循环语句那点事
一.条件分支语句 条件分支语句,也叫作条件判断语句,就是根据某种条件执行某些语句,不执行某些语句. JS中有三种语法是可以表示条件分支的 1.1 if……else…… 条件分支的主力语法,这个主力 ...
- html学习笔记-DOM
html学习笔记-DOM Table of Contents 1. 什么是 DOM? 2. DOM 节点 3. DOM 方法 4. DOM 属性 5. DOM 访问 6. DOM 修改 7. DOM ...
- 前端笔记-html
前端笔记html 前端三大利器,html(本源),css(着装),js(动作) html 学习html就是学习一套规则能够被浏览器识别,在页面中展示,一个页面只能运行一个html 标签 <> ...
- 前端笔记之JavaScript(十)深入JavaScript节点&DOM&事件
一.DOM JavaScript语言核心.变量的定义.变量的类型.运算符.表达式.函数.if语句.for循环.算法等等.这些东西都属于语言核心,下次继续学习语言核心就是面向对象了.JavaScript ...
- 前端笔记之JavaScript(七)深入函数&DOM那点事
一.函数补充 1.1 arguments类数组对象 arguments 是一个对应于传递给函数的参数的类数组对象. 在函数中,使用特殊对象 arguments,开发者无需明确指出参数名,就能访问它们. ...
随机推荐
- VS2017.常量中有换行符
1.VS中加入 “/utf-8” Qt中 也是加入“/utf-8”,加的地方注意下:在 pro文件中 ,这个位置加入: win32-msvc*:QMAKE_CXXFLAGS += /wd"4 ...
- FineReport做成之后如何在Tomcat上运行
问题描述: 自己用FineReport做成的报表画面,要在Tomcat上运行启动 第一步:下载Tomcat 网址: http://tomcat.apache.org/download-80.cgi 下 ...
- talend工具通过关键字来取得text文本中的数据
问题描述: 在文件夹中有多个text文本,通过关键字来取得text文本里面我所需要的数据,并出力到Excel里面.取得的数据,在text文本里面可能是多行的存在,并且在Excel里面是一行的存在. 解 ...
- 【leetcode算法-简单】35. 搜索插入位置
[题目描述] 给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引.如果目标值不存在于数组中,返回它将会被按顺序插入的位置. 你可以假设数组中无重复元素. 示例 1: 输入: [1,3,5, ...
- C5. Spring 服务的注册与发现(Spring Cloud Eureka)
[概述] Eureka 作为 Spring Cloud 分布式解决方案中重要的一环,实现了服务的注册与发现等功能.Eureka 包括 Eureka Server 和 Eureka Client,具体的 ...
- os路径
import os linux下 例如: 我现在在 /home/settings.py文件下 # 获取当前的绝对路径 os.path.abspath(__file__) # 获取的内容 /home/s ...
- python第一个浏览器的自动执行程序
1.目标:简单点,百度搜索“美丽的程序员” 2.操作方法: a.python已经安装完成 b.安装PIP:在windows的cmd窗口下输入easy_install pip c.安装sele ...
- 希尔排序——C语言
希尔排序 希尔排序是插入排序的一种,又称“缩小增量排序”,希尔排序是直接插入排序算法的一种更高效的改进版本,关于插入排序可以看下这篇随笔:插入排序——C语言 (图片来源:https://www.cnb ...
- 『Python基础』第2节: Python简介及入门
一. Python介绍 Python是一门高级计算机程序设计语言,1989年,荷兰的Guido von Rossum创造了它.Guido是是一个牛人,1982年,他从阿姆斯特丹大学获得了数学和计算机硕 ...
- php 配置微信公众号
首先你要在微信公众号官网申请一个公众号,然后登录进去 在网页的左下方找到开发的基本配置 就可以开始配置服务器下面的东西了 点击打开成这个样子的 就是一些参数,url填写你自己服务器的具体地址就好了,我 ...