原生js操作DOM元素的一些使用

JavaScript029

原生js操作DOM元素的一些使用,第1张

方法一:

使用DOM.setAttribute("class","类名")

方法二:

DOM.classList.add("类名")

方法一给DOM元素添加类名会覆盖原有的类名

方法二 可以给DOM元素添加一个类名后 还可以在继续给DOM元素添加新的类名 并且不会覆盖已有的类名

概念:把要添加的节点添加到指定父级里面的最后面,所以也叫追加。

使用方式:fatherdom.appendChild( insertdom )。

兼容性:所有浏览器都支持此方法。

概念:把要插入的节点添加到指定父级里面的指定节点之前。

使用方式:fatherdom.insertBefore( insertdom,chosendom )。

兼容性:所有浏览器都支持此方法,但是值得注意的是,如果第二个参数节点不存在,在IE和Safari下会把要添加的节点使用appendChild()方法追加到指定父级中,而其他主流浏览器(Firefox、Chrome、Opera等)下会报错,所以在插入节点的时候,需要先判断第二个参数节点是否存在

效果

注意:很多人都认为设置disabled="true"是为启用,设置为“false”时为禁用,这是错的。

js操作节点的DOM方法

一、创建节点

createElement

createTextNode

二、添加、删除、替换、克隆元素

1、appendChild

2、insertBefore

3、如果appendChild、insertBefore追加的是已经存在的子元素,实际上就会将子元素位置移动

4、删除节点removeremoveChild

remove()

removeChild

5.替换节点

replaceChild

6、克隆节点

cloneNode()

三、操作元素属性的方法

1.获取属性 元素.属性名

2.设置属性 元素.属性名 = 属性值

1、2方法只能获取和设置元素自带的属性

3.操作属性的万能方法

getAttribute()

setAttribute()

<!DOCTYPE html>

<html>

<head lang="en">

    <meta charset="UTF-8">

    <title></title>

    <script type="text/javascript">

        window.onload = function(){

            var $ = function(args){

                return document.getElementById(args)

            }

            var add = $("add")

            var rep = $("replace")

            var rem = $("remove")

            var dom, h

            add.onclick = function(){

                //新增

                 dom = document.createElement("p")

                dom.innerHTML="<span style='color:red'> 这是一个被p标记包含的 span 标签</span>"

                document.body.appendChild(dom)

            }

            rep.onclick = function(){

                //替换

                 h = document.createElement("h1")

                h.innerHTML="<span style='color:green'> 这是一个被h1标记包含的 span 标签</span>"

                document.body.replaceChild(h,dom)

                dom = null

            }

            rem.onclick = function(){

                //删除

                if(dom){

                    document.body.removeChild(dom)

                }else if(h){

                    document.body.removeChild(h)

                }

            }

        }

    </script>

</head>

<body>

<input type="button" value="新增" id="add"/>

<input type="button" value="替换" id="replace"/>

<input type="button" value="删除" id="remove"/>

</body>

</html>