JavaScript -- DOM

简介: JavaScript -- DOM

获取标签


<html>
    <head>
    <meta http-equiv="Content-Type" content="text/html;charset=utf-8"/>
    </head>
    <body>
    <div class="box" id="box">元素1</div>
    <ui id="list1">
        <li>后端</li>
        <li>前端</li>
        <li>测试</li>
    </ui>
    <ol>
        <li>java</li>
        <li>python</li>
    </ol>
        <script>
            //获取id为box的元素
            var box = document.getElementById('box');
            console.log(box);
            //获取页面中所有的li
            var lis = document.getElementsByTagName('li');
            console.log(lis.length);
            //获取id为list1下的所有li
            var lis2 = document.getElementById('list1').getElementsByTagName('li');
            console.log(lis2.length);
        </script>
    </body>
</html>

结果:


标签属性的操作


对一个标签,我们可以获取属性,增加属性,删除属性


获取属性


语法:

ele. getAttribute(" attribute")

功能:获取ele元素的 attribute属性

说明:

1、ele是要操作的dom对象

2、 attribute是要获取的html属性(如:id、tpye)

<html>
    <head>
    <meta http-equiv="Content-Type" content="text/html;charset=utf-8"/>
    </head>
    <body>
    <p id="text" class="text" align="center" dtype="title">文本</p>
    <input type="text" name="user" value="user1" id="user" />
    <script>
        var p = document.getElementById('text');
        console.log(p.id);
        console.log(p.className);
        console.log(p.dtype);
    </script>
    </body>
</html>

结果:

text
text
undefined

如果属性是内置的,像id,type(class要写成className)这些属性,可以直接通过标签.属性就可以获取到,如果不是内置的,这样写返回的值是undefined,想要获取自定义的属性,就要用到getAttribute了

<html>
    <head>
    <meta http-equiv="Content-Type" content="text/html;charset=utf-8"/>
    </head>
    <body>
    <p id="text" class="text1" align="center" dtype="title">文本</p>
    <input type="text" name="user" value="user1" id="user" />
    <script>
        var p = document.getElementById('text');
        console.log(p.getAttribute('id'));
        console.log(p.getAttribute('class'));
        console.log(p.getAttribute('dtype'));
    </script>
    </body>
</html>

结果:

text
text1
title


设置属性


语法:

ele.setAttribute("attribute","value")

功能:在ele上设置属性

说明:

1.ele是要操作的dom对象

2.attribute为要设置的属性名称

3.value为设置的attribute属性的值

<html>
    <head>
    <meta http-equiv="Content-Type" content="text/html;charset=utf-8"/>
    </head>
    <body>
    <p id="text" class="text1" align="center" dtype="title">文本</p>
    <input type="text" name="user" value="user1" id="user" />
    <script>
        var p = document.getElementById('text');
        // 给p标签设置一个data-color的属性
        p.setAttribute('data-color','red');
    </script>
    </body>
</html>


删除属性


语法:

ele.removeAttribute("attribute")

功能:删除ele上的attribute属性

说明:

1.ele是要操作的dom对象

2.attribute为要删除的属性名称

<html>
    <head>
    <meta http-equiv="Content-Type" content="text/html;charset=utf-8"/>
    </head>
    <body>
    <p id="text" class="text1" align="center" dtype="title">文本</p>
    <script>
        var p = document.getElementById('text');
        // 删除p标签的align属性
        p.removeAttribute('align');
    </script>
    </body>
</html>


设置元素样式


在之前的学习中,我们通过css给标签设置样式,比如颜色,背景色等等。我们也可以使用JS来给标签设置样式

语法:

ele.style.styleName=styleValue

功能:

设置ele元素的CSS样式

说明:

1.ele为要设置样式的DOM对象

2.styleName为要设置的样式名称

3.styleValue为要设置的样式值

<html>
    <head>
    <meta http-equiv="Content-Type" content="text/html;charset=utf-8"/>
    </head>
    <body>
    <div class="box" id="box">元素1</div>
    <ui id="list1">
        <li>后端</li>
        <li>前端</li>
        <li>测试</li>
    </ui>
    <ol>
        <li>java</li>
        <li>python</li>
    </ol>
        <script>
            //设置id为box的这个元素的文字颜色,属性如果是-连接的复合形式时
            //必须要转换成驼峰形式
            var box = document.getElementById('box');
            box.style.color='red';
            box.style.fontWeight='bold';
            var lis = document.getElementById('list1').getElementsByTagName('li');
            //遍历每一个li
            for (var i = 0,len = lis.length;i<len;i++){
                lis[i].style.color='blue';
                if (i==0){
                    lis[i].style.background='#ccc';
                }else if(i==1){
                    lis[i].style.background='#666';
                }else if(i==2){
                    lis[i].style.background='#999';
                }else {
                    lis[i].style.background='#333';
                }
            }
        </script>
    </body>
</html>


innerHTML


语法:

ele.innerHTML

功能:

返回ele元素开始和结束标签之间的内容(文本或html标签都可以)

<html>
    <head>
    <meta http-equiv="Content-Type" content="text/html;charset=utf-8"/>
    </head>
    <body>
    <div class="box" id="box">元素1</div>
    <ui id="list1">
        <li><i>后端</i></li>
        <li>前端</li>
        <li>测试</li>
    </ui>
    <ol>
        <li>java</li>
        <li>python</li>
    </ol>
        <script>
            var lis = document.getElementById('list1').getElementsByTagName('li');
            //遍历每一个li
            for (var i = 0,len = lis.length;i<len;i++){
                console.log(lis[i].innerHTML);
            }
        </script>
    </body>
</html>

结果:

<i>后端</i>
前端
测试

语法:

ele.innerHTML=‘html’

功能:

设置ele元素开始和结束标签之间的内容

<html>
    <head>
    <meta http-equiv="Content-Type" content="text/html;charset=utf-8"/>
    </head>
    <body>
    <div class="box" id="box">元素1</div>
    <ui id="list1">
        <li><i>后端</i></li>
        <li>前端</li>
        <li>测试</li>
    </ui>
    <ol>
        <li>java</li>
        <li>python</li>
    </ol>
        <script>
            var lis = document.getElementById('list1').getElementsByTagName('li');
            //遍历每一个li
            for (var i = 0,len = lis.length;i<len;i++){
                lis[i].innerHTML=lis[i].innerHTML+'开发';
            }
        </script>
    </body>
</html>

相关文章
|
1月前
|
JavaScript 前端开发
js之DOM 文档对象模型
js之DOM 文档对象模型
12 1
js之DOM 文档对象模型
|
13天前
|
JavaScript 前端开发
JavaScript 与 DOM 交互
【9月更文挑战第01天】
15 2
|
19天前
|
编解码 JavaScript 前端开发
JS逆向浏览器脱环境专题:事件学习和编写、DOM和BOM结构、指纹验证排查、代理自吐环境通杀环境检测、脱环境框架、脱环境插件解决
JS逆向浏览器脱环境专题:事件学习和编写、DOM和BOM结构、指纹验证排查、代理自吐环境通杀环境检测、脱环境框架、脱环境插件解决
38 1
|
23天前
|
JSON JavaScript 前端开发
JS的无限可能: 前端 精妙DOM技巧至Node.js的服务端
JS的无限可能: 前端 精妙DOM技巧至Node.js的服务端
|
1月前
|
XML JavaScript 前端开发
JavaScript中的DOM解析器DOMParser api的讲解
`DOMParser`能将XML或HTML源码字符串解析成DOM `Document`。通过`new DOMParser()`创建实例,使用`.parseFromString(string, type)`方法进行解析,其中`string`为待解析的字符串,`type`指定解析类型如`text/html`或`text/xml`等,返回一个`Document`对象。例如,可解析包含`&lt;p&gt;666&lt;/p&gt;`的字符串并获取其文本内容`666`。
72 1
|
29天前
|
JavaScript 前端开发
js之DOM 文档对象模型
js之DOM 文档对象模型
|
1月前
|
JavaScript 前端开发 容器
js之dom学习
js之dom学习
23 0
|
3月前
|
JavaScript 前端开发 UED
JavaScript基础-DOM操作:查找、创建、修改
【6月更文挑战第12天】本文介绍了DOM基础,包括查找元素(getElementById、getElementsByClassName等)、创建新节点(createElement、createTextNode)和修改节点(innerText、innerHTML、setAttribute等)。强调了易错点,如ID唯一性、性能考量和安全问题,并提供了代码示例。熟练掌握DOM操作对前端开发至关重要,但应注意性能优化,适时使用框架或库。
46 2
JavaScript基础-DOM操作:查找、创建、修改
|
2月前
|
JavaScript
js HTML字符串转DOM节点,DOM节点转HTML字符串
js HTML字符串转DOM节点,DOM节点转HTML字符串
27 2
|
3月前
|
JavaScript 前端开发 算法
虚拟DOM是React的关键技术,它是个轻量的JS对象树,模拟实际DOM结构。
【6月更文挑战第27天】虚拟DOM是React的关键技术,它是个轻量的JS对象树,模拟实际DOM结构。当状态改变,React不直接修改DOM,而是先构建新的虚拟DOM树。通过 diff 算法比较新旧树,找到最小变更,仅更新必要部分,提高性能,避免频繁DOM操作。虚拟DOM还支持跨平台应用,如React Native。它优化了更新流程,简化开发,并提升了用户体验。
31 1