美文网首页
js 获取DOM元素的一些方法

js 获取DOM元素的一些方法

作者: jasmine_6aa1 | 来源:发表于2020-03-03 14:01 被阅读0次

    1, js 获取 DOM 元素的方法

    注:上下文必须是document

    1.1,通过ID获取(getElementById)

    // 必须传参数,参数是string类型,是获取元素的id。
    // 返回值只获取到一个元素,没有找到返回null
    document.getElementById('id'); //通过id获取元素
    

    1.2,通过name属性(getElementsByName)

    // 必须传参数,参数是是获取元素的name属性。
    // 返回值是一个类数组,没有找到返回空数组。
    document.getElementsByName('name'); //通过name属性获取元素
    

    1.3,通过标签名(getElementsByTagName)

    // 参数是是获取元素的标签名属性,不区分大小写。
    // 返回值是一个类数组,没有找到返回空数组
    document.getElementsByTagName('name'); //通过name属性获取元素
    var obj = document.getElementsByTagName('div');
    for(let i = 0; i<obj.length; i++){
            obj[i].onclick = function(e){
                console.log(i)
            }
        }
    

    1.4,通过类名(getElementsByClassName)

    // 参数是元素的类名。
    // 返回值是一个类数组,没有找到返回空数组。
    document.getElementsByClassName('animated')
    

    1.5,通过选择器获取一个元素(querySelector)

    //上下文可以是document,也可以是一个元素。
    //参数是选择器,如:”div .className”。
    //返回值只获取到第一个元素。
    document.querySelector('.cnblogs_code');//获取文档中类为cnblogs_code的第一个元素
    

    1.6,通过选择器获取一组元素(querySelectorAll)

    //上下文可以是document,也可以是一个元素。
    //参数是选择器,如:”div .className”。
    //返回值是一个类数组。
    document.querySelectorAll('div.animated');//获取所有div类为animated的元素
    document.querySelector("html").classList.add("noscroll");//给元素添加类名
    document.querySelector("html").classList.remove("noscroll");//给元素删除类
    

    1.7,获取body的方法(document.body):这里获取的是body标签
    1.8,document.documentElement是专门获取html这个标签的

    <html> // 这里获取的是三个标签
       <head></head>
       <body></body>
    </html>
    

    1.9,parentNode:获取父节点

    var test = document.getElementById("test").parentNode; // 获取test的父节点
    

    1.10,childNodes:获取全部子节点

    var test = document.getElementById("test").childNodes; // 获取test的下面全部的子节点
    

    1.11,firstChild:获取第一个子节点

    var test = document.getElementById("test").firstChild; // 获取test下面的第一个子节点
    

    1.12,lastChile:获取最后一个子节点

    var test = document.getElementById("test").lastChile; // 获取test下面的最后一个子节点
    

    1.13,previousSibling:获取上一个兄弟节点

    var test = document.getElementById("test").previousSibling; // 获取test上一个兄弟节点
    

    1.14,nextSibling:获取下一个兄弟节点

    var test = document.getElementById("test").nextSibling; // 获取test下一个兄弟节点
    

    1.15,cloneNode():拷贝一个列表项到另外一个列表

    var test = document.getElementById("test").cloneNode(); // 获取test下一个兄弟节点
    

    2,js 获取元素的属性:

    2.1,element.getAttribute(“属性”); 这种是原生的方法

    let height = document.getElementById("div1").getAttribute("height");
    //获取元素的高度属性
    

    2.2, jqObj.attr("属性") :这种是jquery方法

    $("#compman").attr('name')
    

    3,js 设置元素的属性:

    3.1,element.setAttribute("属性","值") ; 这种是原生的方法

    let height = document.getElementById("div1").getAttribute("height");
    //获取元素的高度属性
    

    3.2, jqObj.attr("属性",“值”) :这种是jquery方法

    $("#compman").attr('name','小屋')
    

    4,获取 DOM 的增删改等方法

    4.1,document.createElement(); DOM 增一个元素

    var btn = document.createElement("div");
    

    4.2,element.appendChild();为元素添加一个新的子元素
    document.createTextNode("Water");创建一个文本节点名(水)

    <ul id="myList"><li>Coffee</li><li>Tea</li></ul>
    <button onclick="myFunction()">点我</button>
    <script>
    function myFunction(){
        var node = document.createElement("LI");
        var textnode = document.createTextNode("Water");
        node.appendChild(textnode);
        document.getElementById("myList").appendChild(node);
    }
    </script>
    

    4.3,element.prepend();:增加到一个容器的末头
    4.4,element.insertBefore(newItem,existingItem); 现有的子元素之前插入一个新的子元素
    注:newItem:要插入的节点对象;existingItem:要添加新的节点前的子节点。

    <ul id="myList"><li>Coffee</li><li>Tea</li></ul>
    <button onclick="myFunction()">点我</button>
    <script>
    function myFunction(){
        var newItem = document.createElement("LI")
        var textnode = document.createTextNode("Water")
        newItem.appendChild(textnode)
        var list = document.getElementById("myList")
        list.insertBefore(newItem,list.childNodes[0]);
    }
    </script>
    

    4.5,element.replaceChild(newnode,oldnode):替换一个子元素
    注:newItem:要插入的节点对象;existingItem:要添加新的节点前的子节点。

    <ul id="myList"><li>Coffee</li><li>Tea</li></ul>
    <button onclick="myFunction()">点我</button>
    <script>
    function myFunction(){
        var textnode = document.createTextNode("Water");
        var item = document.getElementById("myList").childNodes[0];
        item.replaceChild(textnode,item.childNodes[0]);
    }
    </script>
    

    4.6,element.removeChild() : 删除一个子节点

    <ul id="myList"><li>Coffee</li><li>Tea</li><li>Milk</li></ul>
    <button onclick="myFunction()">点我</button>
    <script>
    function myFunction(){
        var list = document.getElementById("myList");
        list.removeChild(list.childNodes[0]);
    }
    </script>
    

    get/set/removeAttribute

    4.7,element.removeAttribute(): 从元素中删除指定的属性

    <h1 style="color:red">Hello World</h1>
    <button onclick="myFunction()">点我</button>
    <script>
    function myFunction(){
        document.getElementsByTagName("H1")[0].removeAttribute("style"); 
    };
    

    4.8,cloneNode(): 拷贝一个列表项到另外一个列表

    var node=document.getElementById("myList2").cloneNode(true)
    

    相关文章

      网友评论

          本文标题:js 获取DOM元素的一些方法

          本文链接:https://www.haomeiwen.com/subject/qdrnkhtx.html