一、创建节点

  1. // $(htmlStr) htmlStr:html格式的字符串
  2. $('<span>这是一个span元素</span>');

二、内部插入

  1. A.append(B) B插入到A的内部后面(之后的串联操作,操作A
  2. <A>
  3. ....
  4. <B></B>
  5. <A>
  6. A.prepend(B) B插入到A的内部前面
  7. <A>
  8. <B></B>
  9. ....
  10. <A>
  11. --------------------------------------------(下面了解)
  12. A.appendTo(B) A插入到B的内部后面 (之后的串联操作,操作A
  13. <B>
  14. ....
  15. <A></A>
  16. <B>
  17. A.prependTo(B) A插入到B的内部前面
  18. <B>
  19. <A></A>
  20. ....
  21. <B>
  1. //1.将天津分别插入到love内部的后面
  2. $("#love").append($("#tj")) ;
  3. $("#tj").appendTo($("#love"));
  4. //2.将天津分别插入到love内部的前面
  5. $("#love").prepend($("#tj")) ;
  6. $("#tj").prependTo($("#love"));

三、外部插入

  1. A.insertAfter(B) , A插入到B后面(同级)
  2. <B></B>
  3. <A></A>
  4. A.insertBefore(B) A插入到B前面
  5. <A></A>
  6. <B></B>
  7. -----------------------------------(下面了解)
  8. A.after(B) , B插入到A后面(同级)
  9. <A></A>
  10. <B></B>
  11. A.before(B) ,将B插入到A前面
  12. <B></B>
  13. <A></A>
  1. //将city分别插入到p2的前面和后面
  2. <script type="text/javascript">
  3. var $city = $("#city");
  4. var $p2 = $("#p2");
  5. $city.after($p2);
  6. $city.before($p2);
  7. </script>

四、删除节点

  1. empty() 清空标签体(清空文本节点和子节点),自身保留(清理门户),会清除子元素上绑定的内容
  2. remove() 删除当前对象。如果之后再使用,元素本身保留,绑定事件 绑定数据 都会被移除
  3. detach() 删除当前对象。如果之后再使用,元素本身保留,绑定事件 绑定数据 都保留
  4. $('div').html('');// 使用html方法来清空元素,不推荐使用,会造成内存泄漏,绑定的事件不会被清除。
  1. //先将city移除,再拼接到body里最后
  2. <script type="text/javascript">
  3. //1.获取city元素
  4. var $city = $("#city");
  5. //2.给city元素绑定事件
  6. $city.click(function(){
  7. alert("哈哈");
  8. });
  9. //3.给city元素绑定数据
  10. $city.data("天空","就是蓝");
  11. //4.移除city
  12. //移除city,使用remove方法之后,city对象绑定的事件和数据都没有了
  13. //$city.remove();
  14. //移除city,使用detach方法之后,city对象绑定的事件和数据还存在
  15. $city.detach();
  16. alert($city.data("天空"));
  17. //5.将city拼接到body后面
  18. $("body").append($city);
  19. </script>
  20. //注意:这里面用到了数据的绑定,使用方式如下
  21. //data(name) 获得锁绑定的数据
  22. //data(name,value) 设置要绑定的数据

五、复制节点

  1. clone(even) 克隆
  2. even :指示事件处理函数是否会被复制。V1.5以上版本默认值是:false
  1. //点击按钮,将按钮本身复制一份,追加到body中
  2. <script type="text/javascript">
  3. $(".save").click(function(){
  4. $("body").append($(this).clone(true));
  5. });
  6. </script>

六、替换节点

  1. A.replaceWith(B) ,使用BA替换掉
  2. A.replaceAll(B) ,使用A替换B
  1. //使用指定内容替换掉p标签
  2. <script type="text/javascript">
  3. //$("p").replaceWith("<a>xxxx</a>");
  4. $("<a>ssss</a>").replaceAll("p");
  5. </script>

七、案例

7-1 左右select

  1. //需求:点击1个箭头按钮,把选中的第一个option移到右侧
  2. // 点击2个箭头的按钮,把所有选中的option移到右侧
  3. // 点击3个箭头的按钮,把所有的option移到右侧
  4. <script type="text/javascript">
  5. $(document).ready(function(){
  6. $("#left1").click(function(){
  7. $("#leftSelectId option:selected:first").appendTo($("#rightSelectId"));
  8. //去除选中状态
  9. $("select option:selected").each(function(){
  10. $(this).prop("selected",false);
  11. });
  12. });
  13. $("#left2").click(function(){
  14. $("#leftSelectId option:selected").appendTo($("#rightSelectId"));
  15. });
  16. $("#left3").click(function(){
  17. $("#leftSelectId option").appendTo("#rightSelectId");
  18. });
  19. $("#right1").click(function(){
  20. $("#rightSelectId option:selected:first").appendTo($("#leftSelectId"));
  21. });
  22. $("#right2").click(function(){
  23. $("#rightSelectId option:selected").appendTo($("#leftSelectId"));
  24. });
  25. $("#right3").click(function(){
  26. $("#rightSelectId option").appendTo("#leftSelectId");
  27. });
  28. });
  29. </script>
  30. //注意:在jquery中使用$(“select :selected”).removeAttr(“selected”)无法清除选中的option控件,需要通过下面方式才行:
  31. //$("select :selected").prop("selected",false);

7-2 动态创建表格

  1. <input type="button" value="获取数据" id="btnCreate"/>
  2. <div>
  3. <table>
  4. <thead>
  5. <tr>
  6. <th>名称</th>
  7. <th>说明</th>
  8. </tr>
  9. </thead>
  10. <tbody id="tbd">
  11. </tbody>
  12. </table>
  13. </div>
  14. <style>
  15. * {
  16. padding: 0;
  17. margin: 0;
  18. }
  19. div {
  20. margin-left: 300px;
  21. margin-top: 100px;
  22. }
  23. table {
  24. border-collapse: collapse;
  25. border-spacing: 0;
  26. border: 1px solid #c0c0c0;
  27. }
  28. th,
  29. td {
  30. border: 1px solid #d0d0d0;
  31. color: #404060;
  32. padding: 10px;
  33. }
  34. th {
  35. background-color: #09c;
  36. font: bold 16px "微软雅黑";
  37. color: #fff;
  38. }
  39. td {
  40. font: 14px "微软雅黑";
  41. }
  42. tbody tr {
  43. background-color: #f0f0f0;
  44. }
  45. tbody tr:hover {
  46. cursor: pointer;
  47. background-color: #fafafa;
  48. }
  49. </style>
  50. <script>
  51. // 模拟从后台拿到的数据
  52. var datas = [
  53. {
  54. name: "芙蓉姐姐",
  55. url: "http://www.360doc.com/content/18/0326/18/44232639_740385433.shtml",
  56. type: "大美女"
  57. },
  58. {
  59. name: "柳岩",
  60. url: "https://baike.baidu.com/item/%E6%9F%B3%E5%B2%A9/9476597?fr=aladdin",
  61. type: "大大美女"
  62. },
  63. {
  64. name: "范冰冰",
  65. url: "http://www.360doc.com/content/18/0827/14/27053206_781579849.shtml",
  66. type: "呵呵了"
  67. }];
  68. //1.页面加载后,点击按钮,遍历数组,获取数组中的元素内容,创建行和列,加入到表格中的tbody中
  69. $(function () {
  70. $("#btnCreate").click(function () {
  71. //遍历数组
  72. for(var i=0;i<datas.length;i++){
  73. var obj=datas[i];//数组中的每一个对象
  74. //创建行和列,加入到tbody中
  75. $("<tr><td><a href="+obj.url+">"+obj.name+"</a></td> <td>"+obj.type+"</td></tr>").appendTo($("#tbd"));
  76. }
  77. });
  78. });
  79. //2.将表格行和列的信息放入到数组,再讲数组信息追加到表格中
  80. $(function () {
  81. $("#btnCreate").click(function () {
  82. var arr=[];
  83. //遍历数组
  84. for(var i=0;i<datas.length;i++){
  85. var obj=datas[i];//数组中的每一个对象
  86. //创建行和列,加入到tbody中
  87. arr.push("<tr><td><a href="+obj.url+">"+obj.name+"</a></td> <td>"+obj.type+"</td></tr>");
  88. }
  89. $("#tbd").html(arr.join(""));
  90. });
  91. });
  92. </script>