• 节点的操作


    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    <html>
    <head>
    <meta charset="utf-8">

    </head>

    <body>
    <h2>获取元素节点</h2>
    <input type = "text" name = "zhangsan" id = "username" value = "Tom" /><br />
    <input type = "text" name = "lisi" id = "usermail" value = "tom@163.com" /><br />
    <a href = "https://www.baidu.com" addr = "beijing" target = "_blank" class = "apple">百度</a><br />
    <input type = "button" value = "修改属性" onclick = "f11()"><br />
    <div>Today is a good day</div>
    <div>Hello</div>
    <div>Mike</div>
    <ul>
    <li>red</li>
    <li>blue</li>
    <li>green</li>
    </ul>
    <ul>
    <li mean="热情">red</li>
    <li mean="冷静">blue</li>
    <li mean="生机">green</li>
    </ul>
    <ul>
    <li mean="饿">orange</li>
    </ul>
    </body>
    </html>
    <script>
    var id = document.getElementById("username");//通过ID获取元素节点
    console.log("id:" + id);//输出整个对象
    var mail = document.getElementById("usermail");
    console.log("mail:" + mail);
    var hh = document.getElementsByTagName("h2");//通过标签名来获取元素节点
    console.log("hh:" + hh);
    console.log(hh[0]);//获取到的为数组,可以取数组里面的第一个元素
    var its = document.getElementsByTagName("input");
    console.log("its:" + its);//输出一个数组
    console.log("its第二个元素:" + its[1]);//取数组里面的第二个元素
    console.log("its第一个元素:" + its.item(0));//通过方法,取数组里面的第一个元素
    var it = document.getElementsByName("zhangsan");
    console.log("it:" + it);
    var it1 = document.getElementsByName("lisi");
    console.log("it1:" + it1);
    //firstchild获取第一个子节点,lastchild获取最后一个节点
    var v = document.getElementsByTagName("div")[0];//节点指的是面向元素
    console.log(v);
    console.log("第一个子节点:" + v.firstChild);
    console.log("最后一个子节点:" + v.lastChild);
    console.log(v.firstChild.nodeType);
    console.log(v.firstChild.wholeText);//获得文本信息

    var ull = document.getElementsByTagName("ul")[0];
    console.log(document.getElementsByTagName("ul")[0]);//不写[0]表示的是一个集合,写表示的是一个元素
    console.log(ull.childNodes);
    console.log(ull.childNodes.length);//子节点长度
    console.log(ull.firstChild);//获取第一个子节点
    console.log(ull.firstChild.nextSibling);//获取下一个子节点
    console.log(ull.lastChild);//获取最后一个子节点
    console.log(ull.lastChild.previousSibling);//获取上一个子节点
    //父节点获取
    var fa = document.getElementsByTagName("li")[1];
    console.log(fa);//li
    console.log(fa.parentNode);//ul
    console.log(fa.parentNode.parentNode);//body
    console.log(fa.parentNode.parentNode.parentNode);//html
    console.log(fa.parentNode.parentNode.parentNode.parentNode);//document
    //获取属性的信息
    var baidu = document.getElementsByTagName("a")[0];
    console.log(baidu.href);
    console.log(baidu.target);
    console.log(baidu.className);//className是class的一个别名,不可以直接访问class属性
    console.log(baidu.addr);//自定义的读取不到
    console.log(baidu.getAttribute("href"));
    console.log(baidu.getAttribute("addr"));//这种方式可以读取自定义属性
    //设置属性,对读取的信息进行赋值
    function f11(){
    baidu.href = "https://www.so.com";
    baidu.addr = "tianjin";
    baidu.setAttribute("addr","shandong");
    baidu.setAttribute('height','170');
    console.log("height:" + baidu.getAttribute("height"));
    console.log("addr:" + baidu.getAttribute("addr"));
    }

    var color = ['red','blue','green'];
    var color_mean = ['热情','冷静','生机'];
    var ull = document.createElement('ul');
    for(var k in color){
    var lii = document.createElement('li');//元素节点的创建
    lii.setAttribute('mean',color_mean[k]);//属性设置
    var txt = document.createTextNode(color[k]);//文本节点的创建
    //节点追加
    lii.appendChild(txt);
    ull.appendChild(lii);//父节点.appendChild(子节点);
    }
    document.body.appendChild(ull);
    //已有节点追加
    var blue = document.getElementsByTagName("li")[1];//获取集合的第2个元素
    var second_ul = document.getElementsByTagName("ul")[2];//获取ul集合,并且获得集合里面的第三个元素
    second_ul.appendChild(blue);//blue放到最后
    console.log(document.getElementsByTagName("ul")[2]);//将blue节点,追加到orange节点之后
    console.log(document.getElementsByTagName("ul")[1]);//追加节点相当于复制,原有节点不变

    var orange = document.getElementsByTagName("li")[6];
    second_ul.appendChild(orange);//orange放到最后
    second_ul.insertBefore(orange,blue);//orange放到blue前面
    second_ul.replaceChild(orange,blue);//orange替代blue
    console.log(document.getElementsByTagName("ul")[2]);
    //节点复制
    var fu_blue = blue.cloneNode(true);//深层复制,本身和内部子节点都复制
    var fu_blue1 = blue.cloneNode(false);//浅层复制(本身(包括属性)节点的复制)
    second_ul.appendChild(fu_blue);
    second_ul.appendChild(fu_blue1);
    console.log(document.getElementsByTagName("ul")[2]);
    //删除节点
    blue.parentNode.removeChild(blue);//删除blue节点
    console.log(document.getElementsByTagName("ul")[0]);
    </script>

  • 相关阅读:
    xxl-job如何保证调度的一致性
    mac安装homebrew
    JDBC自动加载驱动的SPI机制
    JDBC使用
    mysql的limit分页,越往后为什么越慢,怎么解决
    解决idea报错 "cannot access class
    BeanUtils.copyProperties复制失败探究
    xxl-job任务定时触发流程
    xxl-job一致性
    xxl-job高可用部署
  • 原文地址:https://www.cnblogs.com/loveMis/p/8213696.html
Copyright © 2020-2023  润新知