2-9 外部插入
本节编程练习不计算学习进度,请电脑登录imooc.com操作

外部插入

before()

根据参数设定,在匹配元素的前面插入内容:

before: function() {
        return this.domManip( arguments, function( elem ) {
            if ( this.parentNode ) {
                this.parentNode.insertBefore( elem, this );
            }
        });
}

类似after只是替换了第二个参数,改变插入的位置。

append()

在每个匹配元素里面的末尾处插入参数内容:

append: function() {
    return this.domManip( arguments, function( elem ) {
        if ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) {
            var target = manipulationTarget( this, elem );
            target.appendChild( elem );
        }
    });
}

内部增加节点,直接可以调用appendChild方法。

prepend()

prepend: function() {
    return this.domManip( arguments, function( elem ) {
        if ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) {
            var target = manipulationTarget( this, elem );
            target.insertBefore( elem, target.firstChild );
        }
    });
},

类似after只是替换了第二个参数,改变插入的位置。

 

任务

  1. <!doctype html>
  2. <html>
  3. <head>
  4. <meta http-equiv="Content-type" content="text/html; charset=utf-8"/>
  5. <script src="http://code.jquery.com/jquery-latest.js"></script>
  6. <title>DOM操作</title>
  7. </head>
  8. <body>
  9.  
  10. <button id="test1">模拟before处理</button>
  11. <button id="test2">模拟append处理</button>
  12. <button id="test3">模拟prepend处理</button>
  13.  
  14. <div class="container">
  15. <h2>Greetings</h2>
  16. <div class="inner">Hello</div>
  17. <div class="inner">Goodbye</div>
  18. </div>
  19.  
  20.  
  21. <script type="text/javascript">
  22.  
  23. // $('.inner').append('<p>Test</p>')
  24. // $('.inner').before('<p>慕课网</p>')
  25. // $('.inner').prepend('<p>Test</p>');
  26.  
  27. $('#test1').click(function() {
  28. var inner = document.getElementsByClassName('inner')
  29. for (var i = 0; i < inner.length; i++) {
  30. var elem = inner[i]
  31. var div = document.createElement('div')
  32. div.innerHTML = '<p>before操作</p>'
  33. elem.parentNode.insertBefore(div, elem)
  34. }
  35. })
  36.  
  37.  
  38. $('#test2').click(function() {
  39. var inner = document.getElementsByClassName('inner')
  40. for (var i = 0; i < inner.length; i++) {
  41. var elem = inner[i]
  42. var div = document.createElement('div')
  43. div.innerHTML = '<p>append操作</p>'
  44. elem.appendChild(div)
  45. }
  46. })
  47.  
  48.  
  49. $('#test3').click(function() {
  50. var inner = document.getElementsByClassName('inner')
  51. for (var i = 0; i < inner.length; i++) {
  52. var elem = inner[i]
  53. var div = document.createElement('div')
  54. div.innerHTML = '<p>prepend操作</p>'
  55. elem.insertBefore(div, elem.firstChild);
  56. }
  57. })
  58.  
  59.  
  60. </script>
  61.  
  62. </body>
  63. </html>
下一节