回调函数之事件-dom基础

dom节点基础

节点的类型分为:

元素节点(就是标签),文本节点(标签内的文本),属性节点(id='')
比如下列代码中:

测试倾斜列表

元素节点是:

倾斜

文本节点是:
测试
nodeType属性:每个节点都有一个nodeType属性,当nodeType是1的时候为元素节点,当是3的时候是文本节点。
nodeName属性:文本节点的nodeName属性为null,元素节点的nodeName属性是获取元素节点的标签名和tagName值。
nodeValue属性:元素节点本身没有内容为null,文本节点的nodeValue的值是文本内容。

节点的关系

childNodes属性:每个节点都有一个childNodes属性,通过访问数组的方法可以访问保存的NodeList对象,NodeList对象保存着一组有序的节点。可以通过访问length可以访问NodeList的长度。但NodeList并不是数组而是类数组对象。
例如:

var firstChild=someNode.childNodes[0]
var count=someNode.length

parentNode属性:该属性指向文档树中的父节点,子节点的的该属性指向同一个父节点。
appendChild方法 可以动态添加元素节点和innerHtml的效果一样

var node=document.creatElement('li')
var textnode=document.createTextNode('water')
node.appendChild(textNode)
document.getElementById('list').appendChild(node)//先创建标签,然后创建内容,再把内容添加到标签上。

replaceChild方法 接受两个参数即要插入的节点和要替换的节点。这个要插入的新节点可以是已经存在的也可以是新创建的。

  • coffee
  • milk
var textNode=document.createTextNode('water') var item=document.getElementById('list').childNodes[0] item.replaceChild(textNode,item.childNodes[0])//item=document.getElementById('list').childNodes[0]指的是
  • coffee
  • 而item.childNodes[0]指的是coffee

    removeChild方法如果想移除节点的话就用removeChild方法。

    document类型

    文档子节点

    访问html元素

    document.documentElement
    document.childNodes[0]
    document.firstChild
    

    访问body元素

    document.body
    

    文档信息

    document.URL//访问完整的url
    document.title
    

    Element类型

    访问元素的标签名

    this is a cat
    var box=document.querySelector('div') alert(box.nodeName)//div alert(box.tagName)//div

    访问元素的属性值

    1. 对于html元素
    var box=document.querySelector('div') alert(box.id); alert(box.className) alert(box.title) alert(box.head)
    1. getAttribute方法
      该方法也可以获取自定义属性的值
    alert(box.getAttribute('id'))
    alert(box.getAttribute('class'))
    

    尽量避免用getAttribute访问style和onclick。
    设置元素的属性

    1. setAttribute
    div.setAttribute('id','ba')
    

    传入两个参数:一个是设置的属性名称,一个是属性的值。

    1. 可以直接设置
    div.id='ba'
    document.charset='UTF-8'
    

    访问元素的属性

    box.attributes[0]
    

    创建元素

    var box=document.creatElement('div')
    document.body.appendChild(box)//将新创建的元素添加到body中  
    

    Text类型

    创建文本节点

    var text=document.createTextNode('hello world')
    

    选择符API

    querySelector

    var body=document.querySelector('body')
    

    当document类型调用querySelector时指的是在文档元素的范围内查找匹配的元素。
    当通过Element类型调用querySelector时指的是在该元素的后代元素的范围内查找匹配的元素。

    querySelectorAll

    var strongs=document.querySelectorAll('p strong')//取得所有p元素中的所有strong元素。
    

    自定义元素的属性

    必须添加前缀data-
    可以通过元素的dataset属性来访问元素的属性的值。

    var box=div.dataset.appId//属性为data-appId
    

    children属性

    访问元素的子节点与childNodes属性差不多,只不过忽略了空白节点。更常用。

    var childCount=element.children.length;
    var firstChild=element.children[0]
    

    样式

    访问元素的样式

    1. 对于使用短横线的css属性名,必须将其转化成驼峰的样式。对于float则写成cssFloat
    div.style.backgroundColor='red';
    div.style.cssFloat='left'//非ie
    div.style.styleFloat='left'//ie
    

    style属性只能获取和设置行内不能获取内联连接。

    1. document.defaultView提供了getComputedStyle的方法
    var div=document.querySelector('div')
    var style=document.defaultView.getComputedStyle(div,null)
    alert(style.backgroundColor)//red
    

    你可能感兴趣的:(回调函数之事件-dom基础)