js2 dom讲解

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了js2 dom讲解相关的知识,希望对你有一定的参考价值。

第一章 标签的查找

1.1直接查找

直接查找标签可以分为三种:

(1)根据类的名称进行查找。这种方式是用的比较广泛的一种,使用方法为:document.getElementsByClassName(“name”),这种查找的方式找到的对象有一个或多个,所以通常想要具象化出一个对象需要在后面放上一个数字,也就是:document.getElementsByClassName(“name”)[id],比如:找到类名为dev的第一个标签,使用方法为document.getElementsByClassName(“dev”)[0]。

(2)根据对象id进行查找。使用方法为document.getElementById(“idname”),因为id是唯一的,所以这种方法找到的对象只有一个,例如:找到id=p1的标签:document.getElementById(“p1”),这个就表示找到的对象。

(3)根据标签名进行查找。这种方法查到的标签也是一个或多个,使用方法为:document.getElementsByClassName(“name”),类似于根据类查找,这种方式找到的对象也得后面加一个id,例如:查找第一个div标签:document.getElementsByClassName(“div”)[0],第二个那么后面的方括号里写1.

1.2导航查找

      通过与正操作的标签的关系的方式进行标签的查找就是导航查找,目前导航查找的方式一般如下:

parentElement // 父节点标签元素

children // 所有子标签

firstElementChild // 第一个子标签元素

lastElementChild // 最后一个子标签元素

nextElementtSibling // 下一个兄弟标签元素

previousElementSibling // 上一个兄弟标签元素

例如:找到当前标签的父标签:

this.parentElement 

第二章 事件

click事件

表示鼠标点击时发生的事件,使用方法一般是对象。onclick=function(){},例如新增一行表格,可以用如下代码做到:

qian_commit.onclick=function () {
        var tr1=document.createElement("tr");
        for(i=0;i<qian_input.length;i++){
            var td1=document.createElement("td");
            console.log(qian_input[i].value);
            td1.innerhtml=qian_input[i].value;
            td1.classList.add("bianji");
            tr1.appendChild(td1);
        };
        var td2=document.createElement("td");
        var button1=document.createElement("button");
        var button2=document.createElement("button");
        button1.innerHTML="保存";
        button2.innerHTML="删除";
        button1.classList.add("edit1");
        button2.classList.add("del1");
        td2.appendChild(button1);
        td2.appendChild(button2);
        tr1.appendChild(td2);
        qian_body[0].appendChild(tr1);
        qian_back[0].style.display="none";
        qian_del.length=qian_del.length+1;
        del();
        edit();
        save();
    };

onload事件

onload 属性开发中 只给 body元素加.这个属性的触发 标志着 页面内容被加载完成.应用场景: 当有些事情我们希望页面加载完立刻执行,那么可以使用该事件属性.。例如:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>

    <script>
         /*
              window.onload=function(){
                   var ele=document.getElementById("ppp");
                   ele.onclick=function(){
                   alert(123)
                };
             };
         
         */



          function fun() {
              var ele=document.getElementById("ppp");
               ele.onclick=function(){
                alert(123)
            };
          }

    </script>
</head>
<body onload="fun()">

<p id="ppp">hello p</p>

</body>
</html>

onsubmit事件

当表单在提交时触发. 该属性也只能给form元素使用.应用场景: 在表单提交前验证用户输入是否正确.如果验证失败.在该方法中我们应该阻止表单的提交。

例如:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>

    <script>

        window.onload=function(){
            //阻止表单提交方式1().
            //onsubmit 命名的事件函数,可以接受返回值. 其中返回false表示拦截表单提交.其他为放行.

             var ele=document.getElementById("form");
             ele.onsubmit=function(event) {
            //    alert("验证失败 表单不会提交!");
            //    return false;

            // 阻止表单提交方式2 event.preventDefault(); ==>通知浏览器不要执行与事件关联的默认动作。
             alert("验证失败 表单不会提交!");
             event.preventDefault();

    }

        };

    </script>
</head>
<body>

<form id="form">
            <input type="text"/>
            <input type="submit" value="点我!" />
</form>

</body>
</html>

还有很多常见的事件:onselect、onchange、onkeydown、onmouseout、onmouseleave等。

 

以上是关于js2 dom讲解的主要内容,如果未能解决你的问题,请参考以下文章

jquery 对象的 heightinnerHeightouterHeight 的区别以及DOM 元素的 clientHeightoffsetHeightscrollHeightoffset(代码片段

jQuery的DOM操作

如何理解vue,virtual DOM

vue.js 2 - 将单个文件组件的 html 片段提取到独立文件中

JavaScript单行代码,也就是代码片段

实用代码片段将json数据绑定到html元素 (转)