我的账户
猩码学苑

专注C++开发菁英教育

亲爱的游客,欢迎!

已有账号,请

如尚未注册?

薛伯一-20221109-BOM&DOM-03

[复制链接]
Paracelsus 发表于 2022-11-9 23:58:47 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题
DOM&BOM DAY03

一、自定义属性
                自定义标签-H4
                自定义标签-H5
二、排他思想
       
三、节点操作
                3.1子找父、父找子
                        1.body:
document.bodyDOM&BOM DAY03
        自定义属性
                获取属性
                        H4
                                <div id="box" class="box" title="这是一个div" sex="男" age="18">这是一个div</div>
  <script>
    const box = document.querySelector('#box');

    //获取自带属性
    console.log(box.id);
    console.log(box.className);
    console.log(box.title);
    console.log(box);

   //获取自定义属性
    console.log(box.getAttribute('age'));
    console.log(box.getAttribute('sex'));
                        H5
                                <div id="box" class="box" title="这是一个div" data-sex="男" data-age="18">这是一个div</div>
  <script>
    const box = document.querySelector('#box');
    //获取自定义属性
    console.log(box.dataset);
    console.log(box.dataset.age);
    console.log(box.dataset.sex);
  </script>
                修改属性
                        H4
                                 box.setAttribute('sex', '女');
                        H5
                                box.dataset.age = 1;
box.dataset.sex = 1;
        节点操作
                body和html节点操作
                        const body = document.body;
    console.log(body);

    const html = document.documentElement;
    console.log(html);

    console.log(body.clientHeight);
    console.log(html.clientHeight);
                父节点
                        console.log(li.parentNode)  返回上一级父标签
console.log(li.parentNode.parentNode)  返回上两级父标签
                        console.log(li.closest('.container'));
console.log(li.closest('#hearder'));
                                返回指定父级dom节点
                子节点
                         console.log(ul.firstChild);
console.log(ul.lastChild);
console.log(ul.childNodes);
                                会受到空格回车的影响----可以获得文本节点----返回值是元素
                         console.log(ul.children)
                                不受空格回车的影响---是集合不是数组----返回值是元素
                        console.log(ul.firstElementChild)
console.log(ul.lastElementChild)
                                不受空格回车影响,获得的是dom节点
                兄弟间节点
                        获取节点之后的dom节点
                                console.log(p.nextSibling);
                                        会受空格回车的影响获得文本节点
                                console.log(p.nextElementSibling);
                                        不受空格回车影响
                        获取节点之前的dom节点
                                console.log(p.previousSibling);
                                        会受空格回车的影响获得文本节点
                                console.log(p.previousElementSibling);
                                        不受空格回车影响
                创建节点
                        <div id="box">div</div>
  <script>
    const box = document.querySelector('#box');
    let p = document.createElement('p');
    console.log(p)
    p.className = 'p';
    p.innerHTML = '这是一个段落';
  </script>
                添加节点
                        box.appendChild(p);
console.log(box)
                        在某个标签的节点之前添加标签
                                body.insertBefore(p, btn);把p的dom节点放在btn节点的前面
                删除节点
                        body.removeChild(box);
        排他思想
                使用索引对应关系进行切换
                        <script>
    const tab = document.querySelectorAll('.tab');
    const item = document.querySelectorAll('.item');
    tab.forEach(function (v, i) {
      v.addEventListener('click', function () {
        if (i == 0) {
          tab.style.backgroundColor = 'red';
          tab[1].style.backgroundColor = 'orange';
          item.style.display = 'block';
          item[1].style.display = 'none';
        }
        else {
          tab.style.backgroundColor = 'red';
          tab[0].style.backgroundColor = 'orange';
          item.style.display = 'block';
          item[0].style.display = 'none';
        }
      })

    })
  </script>
                自定义属性
                          <script>
    const tab = document.querySelectorAll('.tab');
    const item = document.querySelectorAll('.item');
    const tabs = document.querySelector('.tabs');
    tabs.addEventListener('click', function (e) {
      let tipTip = e.target.dataset.tip;
      tab.forEach(function (v, i) {
        if (v.dataset.tip == tipTip) {
          v.style.backgroundColor = 'red';
          item.forEach(function (a) {
            if (a.dataset.tip == tipTip) {
              a.style.display = 'block';
            }
            else {
              a.style.display = 'none';
            }
          })
        }
        else {
          v.style.backgroundColor = 'orange';
        }
      })
    })
  </script>
        阻止a标签默认跳转事件
                方法一
                        子 <a href="javascript:;">去百度</a>1
                方法二
                        const a = document.querySelector('a');
        a.addEventListener('click', function (e) {
       e.preventDefault();
                        3.2html:
document.
                parentNode 父节点
回复

使用道具 举报

关注0

粉丝0

帖子19

发布主题
大家都在学
课堂讨论
一周热帖排行最近7x24小时热帖
关注我们
专注C++菁英教育

客服电话:18009298968

客服时间:9:00-21:00

猩码学苑 - 专注C++开发菁英教育!( 陕ICP备2025058934号-1 )

版权所有 © 陕西菁英数字科技有限公司 2023-2026