首页 技术 正文
技术 2022年11月12日
0 收藏 312 点赞 4,260 浏览 4532 个字

一、介绍:

http://www.cnblogs.com/wupeiqi/articles/5643298.html

什么是DOM?

DOM字面意思是文档对象模型,DOM将网页内的元素与内容呈现为一个清晰、易读的树状模型,DOM是浏览器提供的API接口,是用来给JavaScript操作document对象的

二、DOM的功能可以分为两部分:(注意DOM中的所有方法,首字母都是小写,后面每个单词开头都是大写)

1,找到一个标签,包括直接查找和间接查找

    直接查找:

    document.getElementById             根据ID获取一个标签

    document.getElementsByName          根据name属性获取标签集合    document.getElementsByClassName     根据class属性获取标签集合    document.getElementsByTagName       根据标签名获取标签集合

    间接查找:

    parentNode          // 父节点

    childNodes          // 所有子节点    firstChild          // 第一个子节点    lastChild           // 最后一个子节点    nextSibling         // 下一个兄弟节点    previousSibling     // 上一个兄弟节点     parentElement           // 父节点标签元素    children                // 所有子标签    firstElementChild       // 第一个子标签元素    lastElementChild        // 最后一个子标签元素    nextElementtSibling     // 下一个兄弟标签元素    previousElementSibling  // 上一个兄弟标签元素

2,找到标签后,对其进行操作,包括修改值、修改class、修改样式、修改属性

   修改值:innerText、outerText、innerHTML、outerHTML、value

   修改class:className

        classList.remove(cls)      //去掉class

        classList.add(cls)      //添加class

   修改样式:tag=document.getElementById(‘i1’) ;

        tag.style.color=’red’;

        tag.style.fontSize=’40px’;    //在标签style属性中,应该写作font-size ,但是在DOM中写作fontSize

        tag.style.backGroundColor=’red’;

   修改属性:tag=document.getElementById(‘i1’) ;

        attributes    // 获取所有标签属性

        setAttribute(key,value)   // 设置标签属性

        getAttribute(key)   // 获取指定标签属性

        removeAttribute(key)   //删除标签属性

三、事件

某个标签可以绑定事件。

书写方式如下,和标签属性类似,只不过事件的值是一个javascript函数,

可以这样理解,style属性用于直接添加css样式,class属性引入了style标签中的css样式,事件则引入了javascript

<iuput type=”submit” onclick=”check()”/>

下面是常见事件:

前端—DOM        

示例1:搜索框

<body>    <input id="i1"  type="text" value="请输入关键字" onfocus="Focus();" onblur="Blur();" />    <!--onfocus属性表示当该标签获取焦点时的动作,onblur属性表示当该标签失去焦点时的动作-->    <script>        function Focus(){            var tag=document.getElementById('i1');   //通过id获取标签            if(tag.value=="请输入关键字"){           //对标签值进行判断                tag.value="";        //清空值            }        }        function Blur(){            var tag=document.getElementById('i1');    //通过id获取标签            var val=tag.value;               //获取标签值            if(val.trim().length==0){         //如果去掉空格后长度为0                tag.value="请输入关键字";          //给标签值赋值            }        }    </script></body>

示例2:模态对话框

<!DOCTYPE html><html lang="en"><head>    <meta charset="UTF-8">    <title></title>    <style>        .hide{            display: none;        }        .shade{       /*遮罩层*/            position: fixed;            top: 0;            left:0;            bottom:0;            right:0;            background-color: red;            opacity: 0.6;            z-index: 100;        }        .model{      /*模态框*/            width: 200px;            height: 200px;            position: fixed;            top: 50%;            left: 50%;            margin-left: -100px;            margin-top: -100px;            background-color: white;            z-index: 101;        }    </style></head><body>    <div style="background-color: #dddddd;height: 2000px;">        <input type="button" value="按钮" onclick="ShowModel();"/>   <!--点击时执行ShowModel函数-->    </div>    <div id="i1" class="shade hide"></div>     <!--默认是隐藏的-->    <div id="i2" class="model hide">    <!--默认是隐藏的-->        <a href="javascript:void(0);" rel="external nofollow"  onclick="HideModel();">取消</a>   <!--点击时执行HideModel函数-->    </div>    <script>        function ShowModel(){            var tag1=document.getElementById("i1");   //获取标签            var tag2=document.getElementById("i2");            tag1.classList.remove("hide");      //去掉hide类型            tag2.classList.remove("hide");        }        function HideModel(){            var tag1=document.getElementById("i1");   //获取标签            var tag2=document.getElementById("i2");            tag1.classList.add("hide");        //添加hide类型            tag2.classList.add("hide");        }    </script></body></html>

示例3:全选反选

<!DOCTYPE html><html lang="en"><head>    <meta charset="UTF-8">    <title></title></head><body>    <input type="button" value="全选" onclick="CheckAll();"/>    <input type="button" value="取消" onclick="CancleAll();"/>    <input type="button" value="反选" onclick="ReverseAll();"/>    <table border="1">        <thead>            <tr>                <th>序号</th>                <th>用户</th>                <th>年龄</th>            </tr>        </thead>        <tbody id="tb">            <tr>                <td><input type="checkbox"  /></td>                <td>11</td>                <td>11</td>            </tr>            <tr>                <td><input type="checkbox" /></td>                <td>22</td>                <td>22</td>            </tr>            <tr>                <td><input type="checkbox" /></td>                <td>33</td>                <td>33</td>            </tr>        </tbody>    </table>    <script>        function CheckAll(){            var tb=document.getElementById('tb');   //获取到tbody标签            var trs=tb.children;                //获取到tr标签数组            for(i=0;i<trs.length;i++){        //循环每个tr标签                var current_trs=trs[i];                var ck=current_trs.firstElementChild.firstElementChild;  //获取td标签中的input标签                ck.checked=true;   //选中//                ck.setAttribute("checked",'checked')            }        }        function CancleAll(){            var tb=document.getElementById('tb');            var trs=tb.children;            for(i=0;i<trs.length;i++){                var current_trs=trs[i];                var ck=current_trs.firstElementChild.firstElementChild;                ck.checked=false;    //取消选中//                ck.removeAttribute('checked');            }        }        function ReverseAll(){            var tb=document.getElementById('tb');            var trs=tb.children;            for(i=0;i<trs.length;i++){                var current_trs=trs[i];                var ck=current_trs.firstElementChild.firstElementChild;                if(ck.checked){                    ck.checked=false;    //如果是选中的取消//                    ck.removeAttribute('checked');                }                else{                    ck.checked=true;     //如果未选中则选中//                    ck.setAttribute('checked','checked');                }            }        }    </script></body></html>
相关推荐
python开发_常用的python模块及安装方法
adodb:我们领导推荐的数据库连接组件bsddb3:BerkeleyDB的连接组件Cheetah-1.0:我比较喜欢这个版本的cheeta…
日期:2022-11-24 点赞:878 阅读:9,083
Educational Codeforces Round 11 C. Hard Process 二分
C. Hard Process题目连接:http://www.codeforces.com/contest/660/problem/CDes…
日期:2022-11-24 点赞:807 阅读:5,558
下载Ubuntn 17.04 内核源代码
zengkefu@server1:/usr/src$ uname -aLinux server1 4.10.0-19-generic #21…
日期:2022-11-24 点赞:569 阅读:6,407
可用Active Desktop Calendar V7.86 注册码序列号
可用Active Desktop Calendar V7.86 注册码序列号Name: www.greendown.cn Code: &nb…
日期:2022-11-24 点赞:733 阅读:6,180
Android调用系统相机、自定义相机、处理大图片
Android调用系统相机和自定义相机实例本博文主要是介绍了android上使用相机进行拍照并显示的两种方式,并且由于涉及到要把拍到的照片显…
日期:2022-11-24 点赞:512 阅读:7,816
Struts的使用
一、Struts2的获取  Struts的官方网站为:http://struts.apache.org/  下载完Struts2的jar包,…
日期:2022-11-24 点赞:671 阅读:4,899