• JavaScript学习Day005(操作节点)


    操作DOM

    DOM:Document Object Model(文档对象模型)

    节点和节点的关系

    节点属性

    Element属性

    节点信息

        nodeName:节点名称
        nodeValue:节点值
        nodeType:节点类型

    操作节点属性

    设置属性

            setAttribute()方法添加指定的属性,并为其赋指定的值
            语法:element.setAttribute(attributename,attributevalue)--attributename(属性名称)、attributevalue(属性值)

    获取属性

            getAttribute() 方法返回指定属性名的属性值
            语法:element.getAttribute(attributename)  attributename必需。需要获得属性值的属性名称 

    删除属性

            removeAttribute() 方法删除指定的属性
            语法:element.removeAttribute(attributename)   attributename--要移除的属性名称

    1. <script>
    2. var imgEle = document.querySelector('img');
    3. var srcAttribute = imgEle.getAttribute('src');
    4. console.log(srcAttribute);
    5. console.log(imgEle.getAttribute('width'));
    6. //设置img元素的src属性值和width属性值
    7. imgEle.setAttribute('src','img/5555.jpg');
    8. imgEle.setAttribute('width','1000px');
    9. //删除img元素的width属性
    10. imgEle.removeAttribute('width');
    11. script>

    节点的操作

    创建

    创建元素:createElement
    创建文本节点:createTextNode

    插入

    文本节点插入到元素中:createELe.appendChild(createTextNode)
    将组装好后的元素添加到父元素中
    方法1:var ulEle = document.querySelector('ul')
    方法2:ulEle.insertBefore(createELe,ulEle.firstElementChild)

    删除

    通过父元素删除子元素:ulEle.removeChild(ulELe.firstElementChild)

    替换

    通过父元素替换一个子元素:ulEle.replaceChild(createELe,ulEle.firstElementChild)

    1. <script>
    2. //需求:想ul元素中再添加一个li元素
    3. //创建li元素
    4. var createELe= document.createElement('li');
    5. console.log(createELe);
    6. //创建文本节点
    7. var createTextNode = document.createTextNode('列表项第二项');
    8. console.log(createTextNode);
    9. //将创建好的文本节点插入到创建的元素中
    10. createELe.appendChild(createTextNode);
    11. console.log(createELe);
    12. //将组装好后的元素添加都ul元素中
    13. //获取ul元素,然后通过ul元素添加组装好的li元素
    14. var ulEle = document.querySelector('ul');
    15. ulEle.appendChild(createELe);
    16. // ulEle.insertBefore(createELe,ulEle.firstElementChild);
    17. //删除节点:也要通过父元素来删除子元素
    18. ulEle.removeChild(ulELe.firstElementChild);
    19. //替换节点:通过父元素替换一个子元素
    20. ulEle.replaceChild(createELe,ulEle.firstElementChild)
    21. script>

    节点复制

        cloneNode():()中没有写参数或者写一个false,表示浅克隆,只克隆标签,不克隆内容
        cloneNode(true):表示深克隆,再克隆标签中的同时,所有的内容都会克隆,包括子标签

    1. <script>
    2. //获取ul元素并赋值
    3. var ulEle = document.querySelector('ul');
    4. console.log(ulEle);
    5. //cloneNode():()中没有写参数或者写一个false,表示浅克隆,只克隆标签,不克隆内容
    6. var cloneUlEle = ulEle.cloneNode();
    7. console.log(cloneUlEle);
    8. var cloneUlEle = ulEle.cloneNode(false);
    9. console.log(cloneUlEle);
    10. //cloneNode(true):表示深克隆,再克隆标签中的同时,所有的内容都会克隆,包括子标签
    11. var cloneUlEle = ulEle.cloneNode(true);
    12. console.log(cloneUlEle);
    13. script>

    操作节点样式

    改变样式属性

    style属性:HTML元素.style.样式属性="值"
    className属性:HTML元素.className="样式名称"

    获取元素样式

    HTML元素.style.样式属性;
    document.defaultView.getComputedStyle(元素,null).属性;
    HTML元素. currentStyle.样式属性;

    HTML中元素属性


    元素属性应用

                标准浏览器
                    document.documentElement.scrollTop;
                Chrome
                    document.body.scrollTop;

    1. <script>
    2. //给h2标签设置样式
    3. var h2Ele = document.querySelector('h2');
    4. // h2Ele.style.width='300px';
    5. // h2Ele.style.height='200px';
    6. // h2Ele.style.backgroundColor='#ccc';
    7. h2Ele.className='demo';
    8. //给p标签设置样式
    9. var pEle = document.querySelector('p');
    10. // pEle.style.width='300px';
    11. // pEle.style.height='200px';
    12. // pEle.style.backgroundColor='#ccc';
    13. pEle.className='demo';
    14. //给div标签设置样式
    15. var divEle = document.querySelector('div');
    16. // divEle.style.width='300px';
    17. // divEle.style.height='200px';
    18. // divEle.style.backgroundColor='#ccc';
    19. // divEle.className='demo text';
    20. //将里面的样式去掉,直接设为空的
    21. divEle.className='';
    22. script>
  • 相关阅读:
    【简写Mybatis-02】注册机的实现以及SqlSession处理
    Vue iview form表单验证失效
    OpenCV中的HoughLines函数和HoughLinesP函数到底有什么区别?
    MyBatis教程
    【Tauri】(5):本地运行candle和 qwen 大模型,并测试速度
    K8s复习笔记9--war包部署Jenkins war包k8s部署
    【域泛化】2022 IJCAI领域泛化教程报告
    代码随想录 | Day 55 - LeetCode 392. 判断子序列、LeetCode 115. 不同的子序列
    web前端期末大作业 HTML游戏资讯网页设计制作 简单静态HTML网页作品 DW游戏资讯网页作业成品 游戏网站模板
    docker和k8s之间的关系
  • 原文地址:https://blog.csdn.net/qihaojinqiuma/article/details/126979265