6-9 jQuery遍历之add()方法
本节编程练习不计算学习进度,请电脑登录imooc.com操作

jQuery遍历之add()方法

jQuery是一个合集对象,通过$()方法找到指定的元素合集后可以进行一系列的操作。$()之后就意味着这个合集对象已经是确定的,如果后期需要再往这个合集中添加一新的元素要如何处理?jQuery为此提供add方法,用来创建一个新的jQuery对象 ,元素添加到匹配的元素集合中

.add()的参数可以几乎接受任何的$(),包括一个jQuery选择器表达式,DOM元素,或HTML片段引用。

简单的看一个案例:

操作:选择所有的li元素,之后把p元素也加入到li的合集中

<ul>
    <li>list item 1</li>
    <li>list item 3</li>
</ul>
<p>新的p元素</p>

处理一:传递选择器

$('li').add('p')

处理二:传递dom元素

$('li').add(document.getElementsByTagName('p')[0])

还有一种方式,就是动态创建P标签加入到合集,然后插入到指定的位置,但是这样就改变元素的本身的排列了

 $('li').add('<p>新的p元素</p>').appendTo(目标位置)

具体的操作,请参考右边的代码

任务

  1. <!DOCTYPE html>
  2. <html>
  3.  
  4. <head>
  5. <meta http-equiv="Content-type" content="text/html; charset=utf-8" />
  6. <title></title>
  7. <style>
  8. .left {
  9. width: auto;
  10. height: 150px;
  11. }
  12.  
  13. .left div {
  14. width: 150px;
  15. height: 120px;
  16. padding: 5px;
  17. margin: 5px;
  18. float: left;
  19. background: #bbffaa;
  20. border: 1px solid #ccc;
  21. }
  22. </style>
  23. <script src="https://www.imooc.com/static/lib/jquery/1.9.1/jquery.js"></script>
  24. </head>
  25.  
  26. <body>
  27. <h2>add方法()</h2>
  28. <div class="left first-div">
  29. <div class="div">
  30. <ul>
  31. <li>list item 1</li>
  32. <li>list item 2</li>
  33. <li>list item 3</li>
  34. </ul>
  35. <p>新的p元素</p>
  36. </div>
  37. </div>
  38. <div class="right"></div>
  39. <br/>
  40. <button>点击:add传递元素标签</button>
  41. <button>点击:add传递html结构</button>
  42. <script type="text/javascript">
  43. $("button:first").click(function() {
  44. //把p元素添加到li的合集中
  45. $('li').add('p').css('background', 'red')
  46. })
  47. </script>
  48. <script type="text/javascript">
  49. $("button:last").click(function() {
  50. //把html结构'<p>新的p元素</p>'
  51. //加入到li的合集中,为了能够在页面上显示
  52. //需要再重新appendTo到指定的节点处
  53. //值得注意:整个结构位置都改变了
  54. $('li').add('<p>新的p元素</p>').appendTo($('.right'))
  55. })
  56. </script>
  57. </body>
  58.  
  59. </html>
  60.  
下一节