一、DOM获取元素节点的子节点

 1、getElementsByTagName()

返回当前节点的指定标签名子节点

2、childNodes

    表示当前节点的所有子节点

3、firstChild

表示当前节点的第一个子节点

4、lastChild

表示当前节点的最后一个子节点

  1. <head>
  2. <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  3. <title>Untitled Document</title>
  4. <link rel="stylesheet" type="text/css" href="style/css.css" />
  5. <script type="text/javascript">
  6. function myQuery(idStr,func){
  7. var btn=document.getElementById(idStr);
  8. btn.onclick=func;
  9. }
  10. window.onload=function(){
  11. var cityEle= document.getElementById("city");
  12. //1.查找#bj节点
  13. /* var btnEle=document.getElementById("btn01");
  14. btnEle.onclick=function(){
  15. var liEle=document.getElementById("bj");
  16. alert(liEle.innerHTML);
  17. } */
  18.  
  19. myQuery("btn01",function(){
  20. var bjEle=document.getElementById("bj");
  21. alert(bjEle.innerHTML);
  22. });
  23.  
  24. //2.查找所有li节点
  25. /* var btn=document.getElementById("btn02");
  26. btn.onclick=function(){
  27. var liEles=document.getElementsByTagName("li");
  28. for(var i=0;i<liEles.length;i++){
  29. alert(liEles[i].innerHTML);
  30. }
  31. }; */
  32.  
  33. myQuery("btn02",function(){
  34. var liEles=document.getElementsByTagName("li");
  35. for(var i=0;i<liEles.length;i++){
  36. alert(liEles[i].innerHTML);
  37. }
  38. });
  39. //3.查找name=gender的所有节点
  40. /* var btn=document.getElementById("btn03");
  41. btn.onclick=function(){
  42. var liEles=document.getElementsByName("gender");
  43. for(var i=0;i<liEles.length;i++){
  44. alert(liEles[i].value);
  45. }
  46. }; */
  47. myQuery("btn03",function(){
  48. var liEles=document.getElementsByName("gender");
  49. for(var i=0;i<liEles.length;i++){
  50. alert(liEles[i].value);
  51. }
  52. });
  53.  
  54. //4.查找#city下所有li节点
  55. myQuery("btn04",function(){
  56. var liEles=cityEle.getElementsByTagName("li");
  57. for(var i=0;i<liEles.length;i++){
  58. alert(liEles[i].innerHTML);
  59. }
  60. });
  61.  
  62. //5.返回#city的所有子节点
  63. myQuery("btn05",function(){
  64.  
  65. var Eles=cityEle.childNodes;
  66. for(var i=0;i<Eles.length;i++){
  67. if(Eles[i].nodeType == 1){
  68. alert(Eles[i].innerHTML);
  69. }
  70. }
  71.  
  72. });
  73.  
  74. //6.返回#phone的第一个子节点
  75. myQuery("btn06",function(){
  76. var phoneEle=document.getElementById("phone");
  77. var Eles1=phoneEle.firstChild;
  78. alert(Eles1.innerHTML);
  79. });
  80.  
  81. //7.返回#bj的父节点
  82. myQuery("btn07",function(){
  83. var bEle=document.getElementById("bj")
  84. var Eles2=bEle.parentNode;
  85. alert(Eles2.innerHTML);
  86.  
  87. });
  88.  
  89. //8.返回#android的前一个兄弟节点
  90. myQuery("btn08",function(){
  91. var bEl=document.getElementById("android");
  92. var Eles3=bEl.previousSibling;
  93. alert(Eles3.innerHTML);
  94. });
  95.  
  96. //9.读取#username的value属性值
  97. myQuery("btn09",function(){
  98. var bEl=document.getElementById("username");
  99. alert(bEl.value);
  100. });
  101.  
  102. //10.设置#username的value属性值
  103. myQuery("btn10",function(){
  104. var bEl=document.getElementById("username");
  105. bEl.value="3lse";
  106. });
  107. //11.返回#bj的文本值
  108. //第一种方法
  109. myQuery("btn11",function(){
  110. var bEl=document.getElementById("bj");
  111. alert(bEl.innnerHTML);
  112. });
  113. //第二种方法
  114. myQuery("btn11",function(){
  115. var bEl=document.getElementById("bj");
  116. bEl.firstChild;
  117. alert(bEl.nodeValue);
  118. });
  119.  
  120. }
  121. </script>
  122. </head>
  1. <body>
  2. <div id="total">
  3. <div class="inner">
  4. <p>
  5. 你喜欢哪个城市?
  6. </p>
  7.  
  8. <ul id="city">
  9. <li id="bj">北京</li>
  10. <li>上海</li>
  11. <li>东京</li>
  12. <li>首尔</li>
  13. </ul>
  14.  
  15. <br>
  16. <br>
  17.  
  18. <p>
  19. 你喜欢哪款单机游戏?
  20. </p>
  21.  
  22. <ul id="game">
  23. <li id="rl">红警</li>
  24. <li>实况</li>
  25. <li>极品飞车</li>
  26. <li>魔兽</li>
  27. </ul>
  28.  
  29. <br />
  30. <br />
  31.  
  32. <p>
  33. 你手机的操作系统是?
  34. </p>
  35.  
  36. <ul id="phone"><li>IOS</li><li id="android">Android</li><li>Windows Phone</li></ul>
  37. </div>
  38.  
  39. <div class="inner">
  40. gender:
  41. <input type="radio" name="gender" value="male"/>
  42. Male
  43. <input type="radio" name="gender" value="female"/>
  44. Female
  45. <br>
  46. <br>
  47. name:
  48. <input type="text" name="name" id="username" value="abcde"/>
  49. </div>
  50. </div>
  51. <div id="btnList">
  52. <div><button id="btn01">查找#bj节点</button></div>
  53. <div><button id="btn02">查找所有li节点</button></div>
  54. <div><button id="btn03">查找name=gender的所有节点</button></div>
  55. <div><button id="btn04">查找#city下所有li节点</button></div>
  56. <div><button id="btn05">返回#city的所有子节点</button></div>
  57. <div><button id="btn06">返回#phone的第一个子节点</button></div>
  58. <div><button id="btn07">返回#bj的父节点</button></div>
  59. <div><button id="btn08">返回#android的前一个兄弟节点</button></div>
  60. <div><button id="btn09">返回#username的value属性值</button></div>
  61. <div><button id="btn10">设置#username的value属性值</button></div>
  62. <div><button id="btn11">返回#bj的文本值</button></div>
  63. </div>
  64. </body>

二、获取父节点和兄弟节点

 1、parentNode

            表示当前节点的父节点

2、previousSibling

表示当前节点的前一个兄弟节点

3、nextSibling

表示当前节点的后一个兄弟节点

三、元素节点的属性

其他属性

  .this表示当前函数所属的对象

  1. checkedAllBox.onclick=function(){
  2. for(var i=0;i<items.length;i++){
  3. //this表示当前函数所属的对象,即this=checkedAllBox
  4. items[i].checked =this.checked;
  5. }
  6. };

nodeValue文本节点

   通过nodeValue的属性获取和设置文本节点的内容

innerHTML元素节点

 通过该属性获取和设置标签内部的html代码

三、增、删、改

1、 创建元素节点

document.createElement(标签名)

 2、 创建文本节点

document.createTextNode(文本值)

 3、 添加子节点

父节点.appendChild(子节点)

 4、 插入节点

父节点.insertBefore(新节点,旧节点)

5、替换节点

父节点.replaceChild(新节点,旧节点)

 6、 删除节点

父节点.removeChild(子节点)

子节点.parentNode.removeChild(子节点)

7、 读写元素内部HTML代码

读取元素.innerHTML

设置元素.innerHTML = 新值

JavaScript(第二部分)的更多相关文章

  1. JavaScript 数据访问(通译自High Performance Javascript 第二章) [转]

    JavaScript 数据访问(通译自High Performance Javascript 第二章)   JavaScript 数据访问(翻译自High Performance Javascript ...

  2. 2014年辛星完全解读Javascript第二节

    本小节我们讲解一下Javascript的语法,虽然js语言非常简单,它的语法也相对好学一些,但是不学总之还是不会的,因此,我们来一探究竟把. ********注释************* 1.我们通 ...

  3. javascript第二遍基础学习笔记(二)

    一.操作符 1.一元操作符: 自加自减(分前置和后置2种):++.-- 区别:前置的先自加或自减,后进行计算:而后置的是先进行计算,后自加或自减(在其会产生负面影响时才能体现区别): ; i++; / ...

  4. JavaScript(第二十八天)【Cookie与存储】

    随着Web越来越复杂,开发者急切的需要能够本地化存储的脚本功能.这个时候,第一个出现的方案:cookie诞生了.cookie的意图是:在本地的客户端的磁盘上以很小的文件形式保存数据.   一.Cook ...

  5. JavaScript(第二十六天)【表单处理】

    为了分担服务器处理表单的压力,JavaScript提供了一些解决方案,从而大大打破了处处依赖服务器的局面.   一.表单介绍 在HTML中,表单是由<form>元素来表示的,而在JavaS ...

  6. JavaScript(第二天)【语法,变量】

    一.语法构成 区分大小写 ECMAScript中的一切,包括变量.函数名和操作符都是区分大小写的.例如:text和Text表示两种不同的变量.   标识符 所谓标识符,就是指变量.函数.属性的名字,或 ...

  7. JavaScript第二课

    1.关于鼠标事件有: onmouseover(),onmouseout(),onmousedown(),onmouseup(),onclick()事件. 2.创建JavaScript对象: 方法1:通 ...

  8. javaWeb核心技术第四篇之Javascript第二篇事件和正则表达式

    - 事件 - 表单提交(掌握) "onsubmit" - 单击事件(掌握) "onclick" - 页面加载成功事件(掌握) "onload" ...

  9. javaScript第二篇

    事件处理函数 javaScript响应用户操作等都是通过事件处理来触发;其基本形式为 event = "javaScript statement(s);" 事件 = "事 ...

随机推荐

  1. Redis基于Java的客户端SDK收集

    如果要找这类的SDK,第一反应应该直奔官网,找一下看下有什么推荐.先找最权威的回答,找不到再尝试民间方案. 就Redis来说,官方已经提供了一个列表包括市面上绝大多数语言的SDK,可以参考以下网址看J ...

  2. 将github上的项目源码导入eclipse详细教程

    将github上的项目源码导入eclipse详细教程 学习了: http://blog.csdn.net/itbiggod/article/details/78462720

  3. android 到底是什么决定了app的名称 application label activity label

    原文地址:http://blog.csdn.net/lamp_zy/article/details/7878979 原来博主的博客的名字仅仅是application label表示菜比的我没有搜到,然 ...

  4. webpack—入门

    点击进入webpack官网.,开始教程时,建议先学习ES6语法,也请先观看本篇Windows符号介绍文章,当所有webpack内容学习完后,会有一个专门的介绍 webpack四个核心概念(从官网入门— ...

  5. js 获取文件本地路径

    1.代码 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF- ...

  6. android studio 0.8.1使用和遇到问题解决

    谷歌6月底公布了五大系统,而且android studio同步升级到了android studio 0.8.1.升级了的android studio确实有一些新的变化.执行速度变快,而且还能够选择开发 ...

  7. [Python] How to unpack and pack collection in Python?

    It  is a pity that i can not add the video here. As a result, i offer the link as below: How to unpa ...

  8. Python学习笔记17:标准库之数学相关(math包,random包)

    前面几节看得真心累.如今先来点简单easy理解的内容. 一 math包 math包主要处理数学相关的运算. 常数 math.e   # 自然常数e math.pi  # 圆周率pi 运算函数 math ...

  9. c#基于事件模型的UDP通讯框架(适用于网络包编解码)

    之前写过一篇关于c#udp分包发送的文章 这篇文章里面介绍的方法是一种实现,可是存在一个缺点就是一个对象序列化后会增大非常多.不利于在网络中的传输. 我们在网络中的传输是须要尽可能的减小传送的数据包的 ...

  10. windows console Kill PID 端口查看

    开始--运行--cmd 进入命令提示符 输入netstat -ano 即可看到所有连接的PID 之后在任务管理器中找到这个PID所对应的程序如果任务管理器中没有PID这一项,可以在任务管理器中选&qu ...