• JavaScript基础知识——DOM和BOM


    QA:1、DOM是哪种基本的数据结构(树形结构)

        2、DOM操作常用的API有哪些

        3、DOM节点的Attribute和property有何区别

        4、如何检测浏览器的类型

    navigator.userAgent
    
    // navigator
    var ua = navigator.userAgent
    var isChrome = ua.indexOf('Chrome')
    console.log(isChrome)
    // screen
    console.log(screen.width)
    console.log(screen.height)

        5、拆解url的各部分

    //location
    console.log(location.href); //整个URL; http://www.cnblogs.com/
    console.log(location.host) // www.cnblogs.com
    console.log(location.protocol); //协议 http/https
    console.log(location.pathname); //域名之后的路径; writer#/
    console.log(location.search); // 问号后面的查询字符串
    console.log(location.hash); // 哈希

    知识点:

    1、DOM本质

      DOM:Document Object Model——文档对象模型

    2、BOM本质

      BOM:Browser Object Document——流量器对象模型

    (1)、获取DOM节点

      根据Id获取元素:document.getElementById('div');//获取的是一个元素

      根据标签名获取元素集合:document.getElementByTagName('div');//获取的是集合

      根据class获取元素集合:document.getElementByClassName('div');//获取的是集合

      根据选择器获取元素的集合:document.querySelectorAll('p');//获取的是集合

    (2)、propety

      js对象的属性,所有的对象的属性都叫做property

    var pList = document.querySelectorAll('p');
    console.log(pList) //节点的集合
    var p = pList[0];
    console.log(p.style.width); //获取样式
    p.style.width = '100px'; //修改样式
    console.log(p.className); //获取className
    p.className = "p1"; // 修改className
    // 获取nodeName 和 nodeType
    console.log(p.nodeName);
    console.log(p.nodeType);
    //对比对象获取属性的方法
    var obj = {name:'jiangdeng',age:22};
    console.log(obj.name); //"jiangdeng"
    
    var p = document.getElementsByTagName('p')[0];
    console.log(p.nodeName);

    (3)、Attribute,标签属性,用于扩充HTML标签,可以改变标签行为或提供数据,格式为name=value

    var pList = document.querySelectorAll('p');
    var p = pList[0];
    p.getAttribute('data-name') //获取标签内的属性
    p.setAttribute('data-name','list') //属性-值 的形式来设置 attr
    p.getAttribute('style');
    p.setAttribute('style','font-size:30px')
    p.setAttribute('class','xiaopingguo')
    
    //示例2
    var p1 = document.getElementById('p1');
    var pstyle = p1.getAttribute('style');
    //console.log(pstyle);
    p1.setAttribute('style',"border:2px solid orange")
    p1.setAttribute('class','xiaopingguo')

    (4)、DOM结构操作

      新增节点

    var div = document.getElementById('div');
    var p = document.createElement('p');
    p.innerHTML = '我是一个p标签';
    div.appendChild(p);
    
    //以上操作就是先获取id为div的元素,然后创建一个p元素,并设置p元素的内容为……,然后将p元素添加到div里面

      获取父节点

      获取子节点

    var div = document.getElementById('div');
    var parent = div.parentElement;//父节点
    var child = div.childNodes;//子节点

      删除节点

    var div = document.getElementById('div');
    div.removeChild('p');

    history(带增加)

      

  • 相关阅读:
    openwrt的内核版本是在哪个文件中指定的?
    git如何将一个分支合并到另一个分支?
    cygwin如何下编译安装tmux?
    如何合并ts文件?
    在cygwin下创建的文件位于windows的哪个目录下?
    linux shell的for循环语法是怎样的?
    内部类访问局部变量时,为什么需要加final关键字
    Java8函数式编程的宏观总结
    Maven私服使用经验总结
    java关于Integer设置-128到127的静态缓存
  • 原文地址:https://www.cnblogs.com/utrustme/p/8573391.html
Copyright © 2020-2023  润新知