DOM和BOM的基础知识

目录

  1. js组成

  2. DOM

    1. DOM是什么
    2. DOM节点是什么
    3. 查找DOM节点,查看DOM节点的属性和样式
    4. 添加DOM节点
    5. 删除DOM节点
    6. 修改DOM节点(修改属性,修改样式)
  3. BOM

    1. 什么是BOM,什么是宿主对象
    2. bom常见api
      1. Json转换
      2. userAgent
      3. 编码解码
      4. history对象
      5. location对象
      6. ajax

JS的组成

  1. ECMAScript(javascript) 的基础语法

    1. 变量
    2. 语句
    3. 函数
    4. 内置对象
  2. DOM文档对象模型

  3. BOM浏览器对象模型

JS的作用

  1. 数据传输
  2. 处理数据
  3. 展示数据

DOM

  1. DOM是什么

    1. 全称Document Object Model(文档对象模型),简称DOM,是一套操作HTML和XML文档(文件)的API

    2. 学习DOM就是学习封装好的操作页面的API(应用程序接口),Application programming interface 就是一些封装好的方法

  2. DOM节点是什么

    1. DOM是由DOM节点(文档节点)组成
    2. HTML 文档中的所有内容都是节点
      1. 整个文档是一个文档节点
      2. 每个 HTML 元素是元素节点
      3. HTML 元素内的文本是文本节点
      4. 每个 HTML 属性是属性节点
      5. 注释是注释节点
  3. 查找dom节点,查看dom节点的属性和样式

    1. 查找节点
      1. document.getElementById() 通过标签的Id获得的是唯一的页面标签对象
      2. document.getElementsByTagName() 通过标签(元素)名,得到一个标签对象的数组
      3. document.getElementsByClassName() 通过标签的类名:在JS中不推荐使用这种方式,因为有兼容性的问题
      4. H5的获取元素节点: document.querySelector("")
      5. H5的获取元素节点: document.querySelectorAll("")
      6. 注意:DOM对象的属性和标签的属性几乎是一模一样的,用DOM的方法获得的标签对象就是DOM对象,使用dir可查看和比较
    2. 查看属性 var dom = document.querySelect('#app');
      1. 获取属性值(可以获的自定义属性的值):dom.getAttribute(name) dom.xxx(比如dom.checked)
      2. 获取class的值 dom.className(得到的是字符串) dom.classList(得到的数组)
      3. dom.style.xxx 比如dom.style.color,dom.style.fontSize(仅限内联样式,font-size要写成fontSize)
      4. getComputedStyle(dom).color (任意式都可以), ComputedStyle => 有所有样式叠加之后的样式
    3. 查看dom 节点内容和亲戚节点
      1. dom.innerText dom节点的内容,不包含标签
      2. dom.innerHTML dom节点的内容,包含标签
      3. dom.parentNode: 获取dom节点的父节点
      4. dom.children: 获取dom节点的子节点,是一个数组
      5. dom.nextElementSibling : 获取dom的下一个元素节点
      6. dom.nextSibling :获取dom的下一个节点(包括元素节点)
      7. dom.previousSibling dom.previousElementSibling 同上
  4. 添加节点

    1. createElement创建节点
    2. cloneNode克隆节点
    3. appendChild追加节点到某个元素后
    4. insertBefore在元素前面添加节点

    // 添加节点

    <script>
        var box = document.getElementById("box");
        // 创建一个ul节点
        var ul = document.createElement("ul"); // 创建的是一对标签
        box.appendChild(ul);// 将创建出来的ul标签追加到box中
        var  li = document.createElement("li"); // 创建的一个标签对象
        ul.appendChild(li);
        li.innerHTML = "这是新添加的内容";
    </script>
    
// 克隆节点
<script>
    //var li11 = dom.cloneNode(false); // 如果参数是false的话,表示浅度克隆,只克隆标签,不会克隆标签之间的内容
    var li11 = li1.cloneNode(true);// 如果参数为true的话,表示 深度克隆,会克隆标签内的一切内容
    // var li11 = li1.cloneNode();// 如果不写参数的话,与false一致
    //  console.log(li11);
    // 可以将克隆出来的内容追加到任何一个节点上
    // appendChild
    ul.appendChild(li11);  // 在当前父级元素的最后,追加一个克隆出来的标签节点
    console.log(ul);
</script>
  1. 删除节点

    1. m.removeChild(n)删除m元素中的n节点
    2. m.remove(); 删除自己(自杀)
  2. 修改dom节点 var dom = document.querySelector('#app');

    1. 修改dom节点的内容
      1. dom.innerText = '前端工程师';
      2. dom.innerHTML = <button>前端工程师</button>;
    2. 修改属性 dom.setAttribute(name, value)
    3. 修改样式
      • dom.style.border = "1px solid red"
      • dom.style.backgroundColor = "yellow"
    4. 修改class
      • dom.className = 'aaa'; 给元素添加一个加aaa的class
      • dom.classList.add() | remove() , 添加或者删除,返回的是一个类名数组
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 199,902评论 5 468
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 84,037评论 2 377
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 146,978评论 0 332
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 53,867评论 1 272
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 62,763评论 5 360
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,104评论 1 277
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,565评论 3 390
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,236评论 0 254
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,379评论 1 294
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,313评论 2 317
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,363评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,034评论 3 315
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,637评论 3 303
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,719评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,952评论 1 255
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,371评论 2 346
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 41,948评论 2 341

推荐阅读更多精彩内容