DOM学习

作者: 流星大石头 | 来源:发表于2017-07-22 14:46 被阅读9次

    DOM:是文档对象模型,是一套操作HTML和XML文档的API

    DOM的作用:

      1.找对象(元素)
      getElementById() //根据id属性获取一个DOM对象
      getElementsByTagName()//根据标签返回多个DOM对象
      H5中新增:
             1. getElementsByClassName() 通过类名获取元素,以类数组形式存在
             2.document.querySelector() 通过css选择器获取元素,返回匹配条件的第一个元素
             3.document.querySelectorAll() 通过CSS选择器获取元素,以类数组形式存在。
     DOM对象的属性和HTML的标签属性几乎是一致的
         src title className href
     DOM对象中的表单对象拥有的属性:
         type value checked selected disabled
     DOM对象的解析:
        innerHTML会把内容解析到DOM树上
        -获取标签之间的内容
        -设置标签之间的内容
    
    2.设置对象的属性
      getAttribute()
     setAttribute()
     removeAttribute()
    直接使用.属性的方式不可以设置自定义属性(IE除外),getAttribute什么时候都可以使用
    
    设置元素的样式
      1.className
      2.style
          无论设置还是获取都只能操作行内样式
          DOM的style属性只能获取标签中使用style设置的样式
      无法获取嵌入或外部样式
      style.cssText获取style里面的字符串
    style里面的常用属性:
      backgroundColor
      backgroundImage
      color
      width
      height
      border
      opacity
      注意DOM对象style的属性和标签中style内的值不一样,因为JS中-不能作为表示符
     h5新增:
              1、Node.classList.add('class') 添加class
              2、Node.classList.remove('class') 移除class
              3、Node.classList.toggle('class') 切换class,有则移除,无则添加
              4、Node.classList.contains('class') 检测是否存在class
    Node指一个有效的DOM节点,是一个通称。
    
    h5中可以自定义属性:
        在HTML5中我们可以自定义属性,其格式如下data-*="",例如
        data-info="我是自定义属性",通过Node.dataset['info'] 我们便可以获取到自定义的属性值。
        Node.dataset是以类对象形式存在的
        当标签的自定义属性格式为:data-my-name时,则需要以驼峰格式才能正确获取:Node.dataset['myName']
     <!--给标签添加自定义属性,必须以data-开头-->
        例子:
        <div class="box" title="盒子" data-my-name="zs" data-content="我是一个div">div</div>
        <script>
            var box = document.querySelector(".box")
            //获取标签的自定义属性 需要通过dataset[]方式来获取
            console.log(box.dataset["content"])
            //给自定义的属性赋值
            box.dataset["content"] = "这是一个测试而已"
    
            //当标签的自定义属性格式为:data-my-name时,则需要以驼峰格式才能正确获取:Node.dataset['myName']
            console.log(box.dataset['myName'])
    
    3.动态的创建和删除元素
    方式一:innerHTML
    方式二:createElement()
    方式三:document.write()
    
    appendChild()
    removeChild()
    insertBefore()
    replaceChild()
    
      4.动态的创建和删除表格
    方式1
    createElement()
    方式2
    rows                          (只读,table和textarea能用)
    insertRow()              (只有table能调用)
    deleteRow()           (只有table能调用)
    cells                 (只读,table和textarea能用)
    insertCell()               (只有tr能调用)
    deleteCell()              (只有tr能调用)
    
    5.事件-触发响应
      事件源
      事件名称
      事件程序
    

    相关文章

      网友评论

          本文标题:DOM学习

          本文链接:https://www.haomeiwen.com/subject/kqdukxtx.html