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的更多相关文章

  1. 2.前端笔记之css

    title: 1.前端笔记之CSS date: 2016-04-05 23:05:51 tags: 前端 categories: w3c --- 作者:刘耀 **出处:http://www.liuya ...

  2. 1.前端笔记之html

    title: 1.前端笔记之HTML date: 2016-04-04 23:21:52 tags: Python categories: Python --- 作者:刘耀 **出处:http://w ...

  3. 写给后端的前端笔记:浮动(float)布局

    写给后端的前端笔记:浮动(float)布局 这篇文章主要面向后端人员,对前端有深刻了解的各位不喜勿喷. 起因 前一阵子我一个后端的伙伴问我,"前端的左飘怎么做?",我立马就懵了,& ...

  4. 写给后端的前端笔记:定位(position)

    写给后端的前端笔记:定位(position) 既然都写了一篇浮动布局,干脆把定位(position)也写了,这样后端基本上能学会css布局了. 类别 我们所说的定位position主要有三类:固定定位 ...

  5. 前端笔记知识点整合之JavaScript(三)关于条件判断语句、循环语句那点事

      一.条件分支语句 条件分支语句,也叫作条件判断语句,就是根据某种条件执行某些语句,不执行某些语句. JS中有三种语法是可以表示条件分支的 1.1 if……else…… 条件分支的主力语法,这个主力 ...

  6. html学习笔记-DOM

    html学习笔记-DOM Table of Contents 1. 什么是 DOM? 2. DOM 节点 3. DOM 方法 4. DOM 属性 5. DOM 访问 6. DOM 修改 7. DOM ...

  7. 前端笔记-html

    前端笔记html 前端三大利器,html(本源),css(着装),js(动作) html 学习html就是学习一套规则能够被浏览器识别,在页面中展示,一个页面只能运行一个html 标签 <> ...

  8. 前端笔记之JavaScript(十)深入JavaScript节点&DOM&事件

    一.DOM JavaScript语言核心.变量的定义.变量的类型.运算符.表达式.函数.if语句.for循环.算法等等.这些东西都属于语言核心,下次继续学习语言核心就是面向对象了.JavaScript ...

  9. 前端笔记之JavaScript(七)深入函数&DOM那点事

    一.函数补充 1.1 arguments类数组对象 arguments 是一个对应于传递给函数的参数的类数组对象. 在函数中,使用特殊对象 arguments,开发者无需明确指出参数名,就能访问它们. ...

随机推荐

  1. 酒店移动端入住离店日期选择demo(转)

    原作者:http://blog.csdn.net/cj14227/article/details/65629737 效果图: demo 代码: <!DOCTYPE html> <ht ...

  2. H5本地存储(转)

    H5本地存储  一.本地存储由来的背景         众所周知Html4时代Cookie的大小.格式.存储数据格式等限制,网站应用如果想在浏览器端存储用户的部分信息,那么只能借助于Cookie.但是 ...

  3. 从MongoDB及mysql 谈B/B+树

    一 B树的由来 B树指的是一类树,包括B-树,B+树,B*树等,是一种自平衡的搜索树,它类似普通的平衡二叉树,不同的一点是B树允许每个节点有更多的子节点.B树是专门为外部存储器设计的,如磁盘,它对于读 ...

  4. 笔记-5:mysql数据更新

    1.插入数据 1.1 插入完整的数据 # 语法格式: INSERT INTO tb_name(column_list) VALUES(value_list); tb_name:指定要插入数据的表名. ...

  5. 资源|《美团机器学习实践》PDF+思维导图

    今天再给大家推荐一本由美团算法团队出版的<美团机器学习实践>,下载链接见文末. 美团算法团队由数百名优秀算法工程师组成,负责构建美团这个生活服务互联网大平台的"大脑", ...

  6. go 常量定义和使用

    常量的定义与变量类似,只不过使用 const 关键字. 常量可以是字符.字符串.布尔或数字类型的值. 常量不能使用 := 语法定义. 常量必须定义时赋值,不能多次赋值 package main imp ...

  7. 使用Duilib开发Windows软件(4)——消息传递

    云信Duilib中没有窗体类的函数可以用来直接收取到所有控件的事件,每个控件都可以单独设置自己的事件处理函数,一般在InitWindow方法中初始化各个控件的事件处理函数. 每个控件都有许多形如Att ...

  8. 安装v2ra y

    说明 全文中所有的‘删掉我’,都请忽略,如果不这么做,那么您将看不到这篇文章 ssr已经不行了,现在大家都以v2ra y为主 安装服务端 运行一键安装脚本,之后进入脚本界面,选“1”安装: bash ...

  9. (一)Struts2 基础

    一.Struts简介 1.1 历史 虽然Struts 2号称是一个全新的框架,但这仅仅是相对Struts 1而言.Struts 2与Struts 1相比,确实有很多革命性的改进,但它并不是新发布的新框 ...

  10. C++编译 C # 调用方法

    C++编译    C # 调用方法 编译时使用  public ref class ABC {   ... }; 调用时  右键---引用 --- 添加dll引用  即可