天天看点

js和jq的insert/append/after/before添加节点和文本

jq方法:

使用jq方法添加节点及文本会容易一些:

$('#div_one').append('<span>新添加1</span>');          //在元素中最后一个子节点后添加(无子节点就直接添加)  
$('<span>新添加2-1</span>').appendTo($('#div_one'));   //意义同上
$('<span>新添加2-2</span>').appendTo('#div_one');     //此写法也可以

$('<span>新添加3</span>').insertBefore('#span_one');   //向节点前添加兄弟节点  
$('<span>新添加4</span>').insertAfter('#span_one');    //向节点后添加兄弟节点  
$(".span-one").before("<p>Hello world,before span-one!</p>"); //向每个class=span-one的节点前添加节点$(".span-one").after("<p>Hello world,after span-one!</p>"); //向每个class=span-one的节点后添加节点
           

js部分:

var htmlnode = document.createElement('book');                  //命名节点为book(只能定义节点名称,不能在节点中添加内容)
document.getElementById('div_two').appendChild(htmlnode);       //在元素内部最后一个子节点后添加节点<book></book>(无子节点就直接添加)

var textnode = document.createTextNode('<span>新添加5</span>');                              //以文本格式创建节点(注意这里的<span>会被当做文本,而不是html标签)
document.getElementById('div_two').getElementsByTagName('book')[0].appendChild(textnode);    //在元素内部最后一个子节点后添加节点(无子节点就直接添加)

var node = document.getElementById("div_one").lastChild;        //appendChild也可以用来移动节点
document.getElementById("div_two").appendChild(node);

document.getElementById('div_two').innerHTML = document.getElementById('div_two').innerHTML + '<span>新添加6</span>';    //以html形式添加标签及内容
           

完整代码:

<!DOCTYPE html>
    <html >
            <head>
            <meta charset="UTF-8">
            <title></title>
            <script src="http://cdn.static.runoob.com/libs/jquery/1.10.2/jquery.min.js"></script>
<style>
    div#div_one,div#div_two{
        width: 300px;
        border: 1px solid red;
    }
    span{
        display: block;
    }
</style>
</head>
<body>

<div id="div_one">
    <span id="span_one">11111111</span>
    <span id="span_two">22222222</span>
    <span id="span_three">33333333</span>
</div>

<div id="div_two">
    <span>44444444</span>
    <span>55555555</span>
    <span>66666666</span>
</div>

<span class="span-one">1</span>
<span class="span-one">2</span>
<span class="span-one">3</span>

<script>
    $(document).ready(function(){
        /* toogle()
         toogleClass();*/
    //jQ 部分:  
        $('#div_one').append('<span>新添加1</span>');   //在元素中最后一个子节点后添加(无子节点就直接添加)  
        $('<span>新添加2-1</span>').appendTo($('#div_one'));//意义同上
        $('<span>新添加2-2</span>').appendTo('#div_one');//此写法也可以

        $('<span>新添加3</span>').insertBefore('#span_one');   //向节点前添加兄弟节点  
        $('<span>新添加4</span>').insertAfter('#span_one');   //向节点后添加兄弟节点  
        $(".span-one").before("<p>Hello world,before span-one!</p>"); //向每个class=span-one的节点前添加节点
        $(".span-one").after("<p>Hello world,after span-one!</p>");   //向每个class=span-one的节点后添加节点
    //js 原生部分:   
        var htmlnode = document.createElement('book');              //命名节点为book(只能定义节点名称,不能在节点中添加内容)
        document.getElementById('div_two').appendChild(htmlnode);   //在元素内部最后一个子节点后添加节点<book></book>(无子节点就直接添加)
 	var textnode = document.createTextNode('<span>新添加5</span>'); //以文本格式创建节点(注意这里的<span>会被当做文本,而不是html标签) document.getElementById('div_two').getElementsByTagName('book')[0].appendChild(textnode); //在元素内部最后一个子节点后添加节点(无子节点就直接添加)
        var node = document.getElementById("div_one").lastChild;          //appendChild也可以用来移动节点        document.getElementById("div_two").appendChild(node); 
 	document.getElementById('div_two').innerHTML = document.getElementById('div_two').innerHTML + '<span>新添加6</span>'; //以html形式添加标签及内容
   });
</script>
</body>
</html>
           

结果如下:

js和jq的insert/append/after/before添加节点和文本

继续阅读