JavaScript-dom1

获取事件源

    var div = document.getElementById("box");
    // var arr1 = document.getElementsByTagName('div');
    // var arr2 = document.getElementsByClassName('div');//h5新增
    // var arr3 = document.getElementsByName("")
    // var arr4 = document.getElementsByTagNameNS()

绑定事件

匿名绑定
        div.onclick = function () {
            }
    用函数名绑定
        // div.onclick = function fn() {
        // alert(2);
        // };
        // div.onclick = fn;
    行内绑定
        // <div onclick="fn()">aaa</div>

 修改样式

div.onclick = function () {
        div.style.width = "200px";
        div.style.backgroundColor = "red";
        div.className = "aaa”;
             }

节点的访问关系

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>访问关系和操作</title>
</head>
<body>
<!--父节点-->
<!--<div class="box1">-->
    <!--<div class="box2"></div>-->
<!--</div>-->
<!--<script>-->
    <!--//节点的访问关系是以属性的方式存在的-->
    <!--//1、box1是box2父节点-->
    <!--var box2 = document.getElementsByClassName("box2")[0];-->
    <!--console.log(box2.parentNode);-->
<!--</script>-->


<!--兄弟节点-->
<!--<div class="box1">-->
    <!--<div class="box2"></div>-->
    <!--<div class="box3"></div>-->
<!--</div>-->
<!--<script>-->
    <!--//节点的访问关系是以属性的方式存在的-->
    <!--//1、box1是box2父节点-->
    <!--var box2 = document.getElementsByClassName("box2")[0];-->
    <!--console.log(box2.nextElementSibling);-->
<!--</script>-->


<!--子节点-->
<div class="box1">
    <div class="box2"></div>
    <div class="box3"></div>
</div>
<script>
//节点的访问关系是以属性的方式存在的
//第一个子节点
var box2 = document.getElementsByClassName("box2")[0];
console.log(box2.parentNode.firstElementChild);

//suoy子节点
console.log(box2.parentNode.childNodes);//有换行符
console.log(box2.parentNode.children);//过滤掉换行符
</script>

</body>
</html>

 dom节点的操作

    
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>dom节点的操作</title>
</head>
<body>
<div class="box1">
    <div class="box2"></div>
    <div class="box3"></div>
</div>


<script>
    //创建
    var aaa = document.createElement("li");
    console.log(aaa);
    var bbb = document.createElement("a");
    console.log(bbb);

    //添加
    var box1 = document.getElementsByClassName("box1")[0];
    box1.appendChild(aaa);
    box1.insertBefore(bbb,aaa); //把bbb添加再aaa标签之前

    //删除
    box1.removeChild(bbb);
    aaa.parentNode.removeChild(aaa);//自己删除自己

    //克隆
    var ccc = box1.cloneNode();  //浅克隆
    var ddd = box1.cloneNode(true);  //深克隆
    console.log(ccc);
    console.log(ddd);
</script>
</body>
</html>

 dom节点属性操作

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>属性操作</title>
    <script>
        window.onload = function () {

            var eleNode = document.getElementsByTagName("img")[0];
            //属性的获取(不会出现在标签当中)
            //1、元素节点.属性;或者元素节点[属性]
            eleNode.src="image/guohui.png";//修改属性
            console.log(eleNode.src);
            console.log(eleNode.tagName);
            console.log(eleNode["title"]);
            console.log(eleNode["className"]);
            console.log(eleNode["alt"]);
            //2、元素节点.方法();
            //获取
            console.log(eleNode.getAttribute("id"));
            //设置
            eleNode.setAttribute("id","nihao");
            //删除
            eleNode.removeAttribute("id");
        }
    </script>
</head>
<body>
<img src="image/logo.png" class="box" title="图片" id="aaa" alt="jd"/>
</body>
</html>

 案例-图片跳转

<body>
    <!--<a href="javascript">切换</a>-->
    <!--<a href="#" style="margin: 10px; display: block;">切换</a>-->
    <a href="http://www.baidu.com" style="margin: 10px; display: block;">切换</a>
    <img id="img" src="image/slogen1.png" width="400px" >
<script>
    //点击a连接,img图片切换(行内式)
    var a = document.getElementsByTagName('a')[0];
    var img = document.getElementById("img");
    a.onclick = function () {
        img.src = "image/slogen2.png";

        //return false禁止a连接跳转(href路径)
        return false;
    }
</script>
</body>

 案例-显示隐藏盒子

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>显示隐藏盒子</title>
    <style type="text/css">
        button {
            margin: 10px;
        }
        div {
             200px;
            height: 200px;
            background: pink;
        }
        .show {
            display: block;
        }
        .hide {
            display: none;
        }
    </style>
</head>
<body>
    <button id="btn">隐藏</button>
    <div>
        扯犊子。。。
    </div>

<script>
    //点击按钮,隐藏盒子改变文字,再点击按钮显示处理
    var btn=document.getElementById("btn");
    var div = document.getElementsByTagName("div")[0];
    btn.onclick = function () {
        //先判断btn的innerhtml的属性值
        if(this.innerHTML === "隐藏"){
            div.className = "hide";
            //修改文字(innerHTML)
            btn.innerHTML = "显示";
        }else{
            div.className = "show";
            btn.innerHTML = "隐藏";
        }
    }

</script>
</body>
</html>

 常用事件调用方法

事件名

说明

onclick

鼠标单击

ondblclick

鼠标双击

onkeyup

按下并释放键盘上的一个键时触发

onchange

文本内容或下拉菜单中的选项发生改变

onfocus

获得焦点,表示文本框等获得鼠标光标。

onblur

失去焦点,表示文本框等失去鼠标光标。

onmouseover

鼠标悬停,即鼠标停留在图片等的上方

onmouseout

鼠标移出,即离开图片等所在的区域

onload

网页文档加载事件

onunload

关闭网页时

onsubmit

表单提交事件

onreset

重置表单时

 
 
 
 
 
 
 
 
 
原文地址:https://www.cnblogs.com/zhangkui/p/8484881.html