动态创建、清空和删除元素节点

相信大家在做项目的过程中都会遇到一些动态性的创建和删除,那今天我就带你认识一些常见的动态性创建元素、清空和删除元素节点。想知道更多或者更详细的请查看w3c.

<meta name="viewport" content="width=device-width" />
<title>Index</title>
<style>
    .left,.right { width: 300px;height: 120px;}
    .left div,.right div {width: 100px;height: 90px;padding: 5px;margin: 5px;float: left;border: 1px solid #ccc;}
    .left div {background:#ff0000;}
    .right div { background: #4cff00;}
    .aaron {color: #000000;}
</style>
<h2 name="p">动态创建元素节点</h2>
<div class="left" id="leftDiv">
    <div id="aaron">点击body区域会动态创建元素节点</div>
   <p class="content"><div>我是div的子标签标签</div></p>
</div>
<body>
<script>
    //dom 节点创建的过程(创建节点<元素、属性、文本等>、添加节点的属性、加入到文档中)
   // 创建元素:document.createElement  设置属性:setAttribute  添加文本:innerHTML 加入文档:appendChild*/
    //addEventListener() 方法用于向指定元素添加事件句柄
    //querySelector() 方法返回文档中匹配指定 CSS 选择器的一个元素
    //getElementsByTagName()返回拥有指定标签名的所有元素

第一、appendChild()添加元素节点

    var body = document.querySelector('body');//查找body元素
    document.getElementById("leftDiv").addEventListener('click', function (){
   var rightdiv = document.createElement('div');//获取id
    var rightaaron = document.createElement('div');  
    rightdiv.setAttribute('class', 'right');//设置属性  
    rightaaron.className = "aaron";
    rightaaron.innerHTML = "动态创建DIV元素节点1";     
    rightdiv.appendChild(rightaaron);//添加属性
    body.appendChild(rightdiv); //绘制到页面body
    });

/第三、删除元素节点

    var body = document.querySelector('body');//查找body元素
    document.getElementById("leftDiv").addEventListener('click', function () { 
    var rightdiv = document.getElementsByTagName('h2')[0];//获取id  
    //绘制到页面body
    body.removeChild(rightdiv);
        })       
</script>
<script src="~/content/bootstrap-3.3.7-dist/js/jquery-3.2.1.min.js"></script>
<script>

jQuery节点创建与属性的处理

    //创建元素节点:
    常见的就是直接把这个节点的结构给通过HTML标记字符串描述出来,通过$()函数处理,$("html结构")
            $("<div></div>")
      创建为本节点:
        与创建元素节点类似,可以直接把文本内容一并描述
        $("<div>我是文本节点</div>")
      创建为属性节点:
        与创建元素节点同样的方式
        $("<div id='test' class='aaron'>我是文本节点</div>")
        我们通过jQuery把上一面的代码改造一下,如下
        一条一句就搞定了,跟写HTML结构方式是一样的
        $("<div class='right'><div class='aaron'>动态创建DIV元素节点</div></div>")*/
    //.使用$(html字符串)来创建Dom节点,并且返回一个jQuery对象,然后调用append等方法将新创建的节点添加到其他节点(元素)中:

append() - 方法用来在元素的末尾追加元素

    var $body = $("body");
    $("#aaron").on('click', function () {
      //通过jQuery生成div元素节点
    var div = $("<div class='right'><div class='aaron'>动态创建DIV元素节点2</div></div>");
   //    $body.append(div); //将div添加到body内
    //});

prepend() - 在元素的开始添加元素

    //var $body = $("body");
    //$("#aaron").on('click', function () {
    //    //通过jQuery生成div元素节点
    //    var div = $("<div class='right'><div class='aaron'>动态创建DIV元素节点3</div></div>");
    //    $body.prepend(div); //将div添加到body内
    //});

afer() - 在被选元素之后插入内容

    $("#aaron").on('click', function () {
    //在匹配test1元素集合中的每个元素后面插入p元素
     $(".content").after('<p style="color:blue">after,在匹配元素之后增加</p>')
    })

before() - 在被选元素之前插入内容

    $("#aaron").on('click', function () {
    //在匹配test1元素集合中的每个元素前面插入p元素
     $(".content").before('<p style="color:red">before,在匹配元素之前增加</p>')
    })

.append()和.appendTo()两种方法功能相同,主要的不同是语法——内容和目标的位置不同

    $("#aaron").on('click', function () {
    //.append(), 内容在方法的后面,
    //参数是将要插入的内容。
     $(".content").append('<div class="append">通过append方法添加的元素</div>')
    })
    
    $("#aaron").on('click', function () {
     //.appendTo()刚好相反,内容在方法前面,
     //无论是一个选择器表达式 或创建作为标记上的标记
     //它都将被插入到目标容器的末尾。
   $('<div class="appendTo">通过appendTo方法添加的元素</div>').appendTo($(".content"))
    /})

.empty()和.remove()区别:

    .empty()是将节点清空,清除节点的innerHTML,节点还在,而.remove()是直接删除节点。
    $("#aaron").on('click', function () {
    //通过empty移除了当前div元素下的所有p元素
    $(".content").empty()
    })

remove()- 删除节点

    $("#aaron").on('click', function () {
    //删除整个 class=test1的div节点
     $(".content").remove()
    })
发布了37 篇原创文章 · 获赞 8 · 访问量 5966

猜你喜欢

转载自blog.csdn.net/weixin_43741599/article/details/88935490