1. 1.测试removeChild()方法: 删除节点
    dom9.html
  1. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
  2. <html>
  3. <head>
  4. <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  5. <title>Untitled Document</title>
  6.  
  7. <script type="text/javascript">
  8. //测试removeChild()方法: 删除节点
  9. window.onload = function() {
  10. /* alert("1");
  11. var bjNode = document.getElementById("bj");
  12. bjNode.parentNode.removeChild(bjNode); */
  13. //为每个li添加一个confirm(确认对话框):确定删除xx的信息吗,确定,则删除
  14. // var falg = confirm("确定要删除吗?");
  15. // alert(flag);
  16.  
  17. var liNodes = document.getElementsByTagName("li");
  18. for (var i = 0; i < liNodes.length; i++) {
  19. liNodes[i].onclick = function(){
  20. var flag = confirm("确定要删除"+this.firstChild.nodeValue+"的信息吗?");
  21. if (flag) {
  22. this.parentNode.removeChild(this);
  23. }
  24. }
  25. }
  26. }
  27. </script>
  28.  
  29. </head>
  30. <body>
  31. <p>你喜欢哪个城市?</p>
  32. <ul id="city">
  33. <li id="bj" name="BeiJing">北京</li>
  34. <li>上海</li>
  35. <li>东京</li>
  36. <li>首尔</li>
  37. </ul>
  38.  
  39. <br>
  40. <br>
  41. <p>你喜欢哪款单机游戏?</p>
  42. <ul id="game">
  43. <li id="rl">红警</li>
  44. <li>实况</li>
  45. <li>极品飞车</li>
  46. <li>魔兽</li>
  47. </ul>
  48.  
  49. <br>
  50. <br> name:
  51. <input type="text" name="username" id="name" value="xiaoxiaolin">
  52. </body>
  53. </html>

2.练习

ex5.html

  1. <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
  2. <html>
  3. <head>
  4. <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  5. <title>Insert title here</title>
  6. <script type="text/javascript">
  7.  
  8. /*
  9. * 为 #employeetable 的所有的 a 节点添加 Onclick 响应函数:
  10. * 1. 弹出确认对话框: 确定要删除 xx 的信息吗? xx 为当前 a 节点所在的 td 所在的 tr 的
  11. * 第一个 td 子节点的文本值, 且要去除前后空格.
  12. * 2. 若点击 "确认" , 则删除 a 节点的所在的 行
  13. *
  14. * 注意:
  15. * 1. a 节点是一个超级链接, 可以在其 onclick 事件中通过返回 false, 来取消默认行为
  16. * 2. tr 的直接父节点为 tbody, 而不是 table
  17. * 3. 可以把去除前后空格的代码写成一个 trim(str) 函数.
  18. *
  19. * 为 #addEmpButton 添加 onclick 响应函数:
  20. * 1. 获取 #name, #email, #salary 的文本框的值
  21. * 2. 利用 1 获取的文本值创建 3 个 td 节点, 在创建一个 tr 节点. 并把以上的 3 个 td
  22. * 节点价位 tr 节点的子节点
  23. <tr>
  24. <td>Tom</td>
  25. <td>tom@tom.com</td>
  26. <td>5000</td>
  27. </tr>
  28. * 3. 在创建一个 td 节点: <td><a href="deleteEmp?id=xxx">Delete</a></td>
  29. * 4. 把 3 创建的 td 也加为 tr 的子节点.
  30. * 5. 再把 tr 加为 #employeetable 的 tbody 子节点的子节点.
  31. * 6. 为新创建的 tr 的 a 子节点添加 Onclick 响应函数, 使其也具备删除的功能.
  32. *
  33. */
  34.  
  35. window.onload = function(){
  36.  
  37. function removeTr(aNoe){
  38. var trNode = aNoe.parentNode.parentNode;
  39. var textContent = trNode.getElementsByTagName("td")[0]
  40. .firstChild.nodeValue;
  41. textContent = trim(textContent);
  42. var flag = confirm("确定要删除" + textContent + "的信息吗?");
  43. if(flag){
  44. trNode.parentNode.removeChild(trNode);
  45. }
  46. return false;
  47. }
  48. var aNodes = document.getElementById("employeetable")
  49. .getElementsByTagName("a");
  50. for(var i = 0; i < aNodes.length; i++){
  51. aNodes[i].onclick = function(){
  52. removeTr(this);
  53. return false;
  54. }
  55. }
  56.  
  57. document.getElementById("addEmpButton").onclick = function(){
  58.  
  59. var nameVal = document.getElementById("name").value;
  60. var emailVal = document.getElementById("email").value;
  61. var salaryVal = document.getElementById("salary").value;
  62.  
  63. var nameTd = document.createElement("td");
  64. nameTd.appendChild(document.createTextNode(nameVal));
  65.  
  66. var emailTd = document.createElement("td");
  67. emailTd.appendChild(document.createTextNode(emailVal));
  68.  
  69. var salaryTd = document.createElement("td");
  70. salaryTd.appendChild(document.createTextNode(salaryVal));
  71.  
  72. var tr = document.createElement("tr");
  73.  
  74. tr.appendChild(nameTd);
  75. tr.appendChild(emailTd);
  76. tr.appendChild(salaryTd);
  77.  
  78. alert("aa");
  79.  
  80. //<td><a href="deleteEmp?id=xxx">Delete</a></td>
  81. var aNode = document.createElement("a");
  82. aNode.href = "deleteEmp?id=xxx";
  83. aNode.appendChild(document.createTextNode("Delete"));
  84. var aTd = document.createElement("td");
  85. aTd.appendChild(aNode);
  86.  
  87. tr.appendChild(aTd);
  88.  
  89. aNode.onclick = function(){
  90. removeTr(this);
  91. return false;
  92. }
  93.  
  94. document.getElementById("employeetable")
  95. .getElementsByTagName("tbody")[0]
  96. .appendChild(tr);
  97.  
  98. //value: 用于获取 html 表单元素的值
  99. //alert(this.value); //
  100. //nodeValue: 用于获取文本节点的文本值.
  101. //alert(this.nodeValue); //null
  102.  
  103. }
  104.  
  105. function trim(str){
  106. var reg = /^\s*|\s*$/g;
  107. return str.replace(reg, "");
  108. }
  109.  
  110. }
  111.  
  112. </script>
  113. </head>
  114. <body>
  115.  
  116. <center>
  117. <br> <br> 添加新员工 <br> <br> name: <input type="text"
  118. name="name" id="name" />&nbsp;&nbsp; email: <input type="text"
  119. name="email" id="email" />&nbsp;&nbsp; salary: <input type="text"
  120. name="salary" id="salary" /> <br> <br>
  121. <button id="addEmpButton" value="abc">Submit</button>
  122. <br> <br>
  123. <hr>
  124. <br> <br>
  125. <table id="employeetable" border="1" cellpadding="5" cellspacing=0>
  126. <tbody>
  127. <tr>
  128. <th>Name</th>
  129. <th>Email</th>
  130. <th>Salary</th>
  131. <th>&nbsp;</th>
  132. </tr>
  133. <tr>
  134. <td>Tom</td>
  135. <td>tom@tom.com</td>
  136. <td>5000</td>
  137. <td><a href="deleteEmp?id=001">Delete</a></td>
  138. </tr>
  139. <tr>
  140. <td>
  141. Jerry
  142. </td>
  143. <td>jerry@sohu.com</td>
  144. <td>8000</td>
  145. <td><a href="deleteEmp?id=002">Delete</a></td>
  146. </tr>
  147. <tr>
  148. <td>Bob</td>
  149. <td>bob@tom.com</td>
  150. <td>10000</td>
  151. <td><a href="deleteEmp?id=003">Delete</a></td>
  152. </tr>
  153. </tbody>
  154. </table>
  155. </center>
  156.  
  157. </body>
  158. </html>

3 插入节点:
          ① insertBefore(): 把一个给定节点插入到一个给定元素节点的给定子节点的前面
                                       var reference = element.insertBefore(newNode,targetNode);
                                      节点 newNode 将被插入到元素节点 element 中并出现在节点 targetNode 的前面.

节点 targetNode 必须是 element 元素的一个子节点。

②自定义 insertAfter() 方法

demo10.html

  1. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
  2. <html>
  3. <head>
  4. <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  5. <title>Untitled Document</title>
  6.  
  7. <script type="text/javascript">
  8.  
  9. //测试 insertBefore() 插入节点
  10. //该方法除了进行插入外, 还有移动节点的功能.
  11. window.onload = function(){
  12.  
  13. alert("abc");
  14.  
  15. //1. 把 #rl 插入到 #bj 节点的前面
  16.  
  17. var cityNode = document.getElementById("city");
  18. var bjNode = document.getElementById("bj");
  19. var rlNode = document.getElementById("rl");
  20.  
  21. //cityNode.insertBefore(rlNode, bjNode);
  22.  
  23. //var refNode = document.getElementById("se");
  24. var refNode = document.getElementById("dj");
  25. insertAfter(rlNode, refNode);
  26. }
  27.  
  28. //把 newNode 插入到 refNode 的后面
  29. function insertAfter(newNode, refNode){
  30. //1. 测试 refNode 是否为其父节点的最后一个子节点
  31. var parentNode = refNode.parentNode;
  32. if(parentNode){
  33. var lastNode = parentNode.lastChild;
  34.  
  35. //2. 若是: 直接把 newNode 插入为 refNode 父节点的最后一个子节点.
  36. if(refNode == lastNode){
  37. parentNode.appendChild(newNode);
  38. }
  39. //3. 若不是: 获取 refNode 的下一个兄弟节点, 然后插入到其下一个兄弟
  40. //节点的前面.
  41. else{
  42. var nextNode = refNode.nextSibling;
  43. parentNode.insertBefore(newNode, nextNode);
  44. }
  45. }
  46. }
  47.  
  48. </script>
  49.  
  50. </head>
  51. <body>
  52. <p>你喜欢哪个城市?</p>
  53. <ul id="city"><li id="bj" name="BeiJing">北京</li>
  54. <li>上海</li>
  55. <li id="dj">东京</li>
  56. <li id="se">首尔</li>
  57. </ul>
  58.  
  59. <br><br>
  60. <p>你喜欢哪款单机游戏?</p>
  61. <ul id="game">
  62. <li id="rl">红警</li>
  63. <li>实况</li>
  64. <li>极品飞车</li>
  65. <li>魔兽</li>
  66. </ul>
  67.  
  68. <br><br>
  69. gender:
  70. <input type="radio" name="gender" value="male"/>Male
  71. <input type="radio" name="gender" value="female"/>Female
  72.  
  73. <br><br>
  74. name: <input type="text" name="username" value="atguigu"/>
  75.  
  76. </body>
  77. </html>

4.innerHTML属性:
           浏览器几乎都支持该属性, 但不是 DOM 标准的组成部分.

innerHTML 属性可以用来读, 写某给定元素里的 HTML 内容

  1. <script type="text/javascript">
  2.  
  3. //测试 innerHTML 属性
  4. window.onload = function(){
  5. var cityNode = document.getElementById("city");
  6. alert(cityNode.innerHTML);
  7.  
  8. //互换 #city 节点和 #game 节点中的内容.
  9. var tempHTML = cityNode.innerHTML;
  10. var gameNode = document.getElementById("game");
  11.  
  12. cityNode.innerHTML = gameNode.innerHTML;
  13. gameNode.innerHTML = tempHTML;
  14. }
  15.  
  16. </script>

删除节点与插入节点 & innerHTML的更多相关文章

  1. jQuery中的查找节点、创建节点、插入节点、删除节点、替换节点、复制节点操作方法

    jQuery操作节点我们可以分六点来讲,查找节点.创建节点.插入节点.删除节点.替换节点.复制节点. 一.查找节点 text() - 设置或返回所选元素的文本内容   ,html() - 设置或返回所 ...

  2. JQuery_DOM 节点操作之创建节点、插入节点

    一.创建节点 为了使页面更加智能化,有时我们想动态的在html 结构页面添加一个元素标签,那么在插入之前首先要做的动作就是:创建节点 <script type="text/javasc ...

  3. JQ 添加节点和插入节点的方法总结

    转载来源:http://blog.csdn.net/ss1106404013/article/details/49274345 添加节点的jQuery方法: append().prepend().ap ...

  4. C语言实现双向链表删除节点、插入节点、双向输出等操作

    #include<cstdio> #include<cstdlib> typedef struct DoubleLinkedList { int data; struct Do ...

  5. [javaSE] 数据结构(二叉查找树-插入节点)

    二叉查找树(Binary Search Tree),又被称为二叉搜索树,它是特殊的二叉树,左子树的节点值小于右子树的节点值. 定义二叉查找树 定义二叉树BSTree,它保护了二叉树的根节点BSTNod ...

  6. 插入节点insertBefore()

    http://www.imooc.com/code/1699 插入节点insertBefore() insertBefore() 方法可在已有的子节点前插入一个新的子节点. 语法: insertBef ...

  7. Query节点操作,jQuery插入节点,jQuery删除节点,jQuery Dom操作

    一.创建节点 var box = $('<div>节点</div>'); //创建一个节点,或者var box = "<div>节点</div> ...

  8. C#中操作xml文件(插入节点、修改、删除)

    已知有一个xml文件(bookstore.xml)如下: <?xml version="1.0" encoding="gb2312"?> <b ...

  9. jQuery节点操作,jQuery插入节点,jQuery删除节点,jQuery Dom操作

    一.创建节点 1 var box = $('<div>节点</div>'); //创建一个节点,或者var box = "<div>节点</div& ...

随机推荐

  1. JavaWeb开发规范

    以下的建议将帮助你更有效地使用本文所描述的 Java 编程标准: ******************************************************* 当你写代码时就应该遵守 ...

  2. Python基础03 id

    id id(x)对应变量x所引用对象的内存地址.可以把id(x)看成变量x的身份标识. is 有时在编程中需要与变量的身份标识打交道,但不是通过 id 函数,而是 is 操作符. The operat ...

  3. Hadoop-wordCount实例代码编写(Hadoop学习第四天)

    1.新建一个maven项目2.pom文件中引入以下jar包<dependency> <groupId>org.apache.hadoop</groupId> < ...

  4. 在web项目中使用shiro(认证、授权)

    一.在web项目中实现认证 第一步,在web项目中导入shiro依赖的包 第二步,在web.xml中声明shiro拦截权限的过滤器 <filter> <filter-name> ...

  5. 带你看看Java的锁(二)-Semaphore

    前言 简介 Semaphore 中文称信号量,它和ReentrantLock 有所区别,ReentrantLock是排他的,也就是只能允许一个线程拥有资源,Semaphore是共享的,它允许多个线程同 ...

  6. 01-Taro打造hello-world应用

    01-Taro打造hello-world应用 一.简介 Taro是由京东凹凸实验室出品,书写一套代码通过 Taro 的编译工具,将源代码分别编译出可以在不同端(微信 / 京东 / 百度 / 支付宝 / ...

  7. [zoj3627]模拟吧

    思路:情况只可能是2种,两个人一直向一边走,或者有一个人折回来,对于后一种,枚举折回来的位置就行了.不过要注意两个方向都要处理下. #pragma comment(linker, "/STA ...

  8. dedecms织梦建站后怎么防止被黑,加强安全漏洞措施?

    dedecms织梦建站后怎么防止被黑,加强安全漏洞措施? 很多人反映dedecms织梦网站被黑的情况,因为织梦相对来说漏洞还是挺多的,特别是新建设的站点,有些目录.文件该删的删,权限及安全都要设置,以 ...

  9. 关于layui数据表格的各种事件

    table.on('tool(demo)', function(obj){}):监听工具条事件,tool 是工具条事件名,demo 是 table 原始容器的属性 lay-filter="对 ...

  10. 前端面试题-几个很实用的BOM属性对象方法?

    什么是Bom? Bom是浏览器对象.有哪些常用的Bom属性呢? (1)location对象 location.href-- 返回或设置当前文档的URL location.search -- 返回URL ...