1、认识DOM

  文档对象模型DOM(Document Object Model)定义访问和处理HTML文档的标准方法。DOM 将HTML文档呈现为带有元素、属性和文本的树结构(节点树)。

  先来看看下面代码:

  

  将HTML代码分解为DOM节点层次图:

  

  HTML文档可以说由节点构成的集合,DOM节点有:

  1. 元素节点:上图中<html>、<body>、<p>等都是元素节点,即标签。

  2. 文本节点:向用户展示的内容,如<li>...</li>中的JavaScript、DOM、CSS等文本。

  3. 属性节点:元素属性,如<a>标签的链接属性href="http://www.imooc.com"。

  节点属性:

  

  遍历节点树:

  

  以上图ul为例,它的父级节点body,它的子节点3个li,它的兄弟结点h2、P。

  DOM操作:

  

  注意:前两个是document方法。

  (1)getElementsByName()方法

  返回带有指定名称的节点对象的集合。

  语法:

  document.getElementsByName(name)

  与getElementById() 方法不同的是,通过元素的 name 属性查询元素,而不是通过 id 属性。

  注意:

  1. 因为文档中的 name 属性可能不唯一,所有 getElementsByName() 方法返回的是元素的数组,而不是一个元素。

  2. 和数组类似也有length属性,可以和访问数组一样的方法来访问,从0开始。

  看看下面的代码:

  

  运行结果:

  

  (2)getElementsByTagName()方法

  返回带有指定标签名的节点对象的集合。返回元素的顺序是它们在文档中的顺序。

  语法:

  getElementsByTagName(Tagname)

  说明:

  1. Tagname是标签的名称,如p、a、img等标签名。

  2. 和数组类似也有length属性,可以和访问数组一样的方法来访问,所以从0开始。

  看看下面代码,通过getElementsByTagName()获取节点。

  

  (3)区别getElementByID,getElementsByName,getElementsByTagName

  以人来举例说明,人有能标识身份的身份证,有姓名,有类别(大人、小孩、老人)等。

  1. ID 是一个人的身份证号码,是唯一的。所以通过getElementById获取的是指定的一个人。

  2. Name 是他的名字,可以重复。所以通过getElementsByName获取名字相同的人集合。

  3. TagName可看似某类,getElementsByTagName获取相同类的人集合。如获取小孩这类人,getElementsByTagName("小孩")。

  把上面的例子转换到HTML中,如下:

  <input type="checkbox" name="hobby" id="hobby1">  音乐

  input标签就像人的类别。

  name属性就像人的姓名。

  id属性就像人的身份证。

  方法总结如下:

  

  注意:方法区分大小写

  通过下面的例子(6个name="hobby"的复选项,两个按钮)来区分三种方法的不同:

    <input type="checkbox" name="hobby" id="hobby1">  音乐<input type="checkbox" name="hobby" id="hobby2">  登山<input type="checkbox" name="hobby" id="hobby3">  游泳<input type="checkbox" name="hobby" id="hobby4">  阅读<input type="checkbox" name="hobby" id="hobby5">  打球<input type="checkbox" name="hobby" id="hobby6">  跑步 <input type="button" value = "全选" id="button1"><input type="button" value = "全不选" id="button1">

  1. document.getElementsByTagName("input"),结果为获取所有标签为input的元素,共8个。

  2. document.getElementsByName("hobby"),结果为获取属性name="hobby"的元素,共6个。

  3. document.getElementById("hobby6"),结果为获取属性id="hobby6"的元素,只有一个,"跑步"这个复选项。

  案例:全选/不全选

<!DOCTYPE HTML>
<html><head><meta http-equiv="Content-Type" content="text/html; charset=gb2312"><title>无标题文档</title>
</head><body><form>请选择你爱好:<br><input type="checkbox" name="hobby" id="hobby1"> 音乐<input type="checkbox" name="hobby" id="hobby2"> 登山<input type="checkbox" name="hobby" id="hobby3"> 游泳<input type="checkbox" name="hobby" id="hobby4"> 阅读<input type="checkbox" name="hobby" id="hobby5"> 打球<input type="checkbox" name="hobby" id="hobby6"> 跑步<br><input type="button" value="全选" onclick="checkall();"><input type="button" value="全不选" onclick="clearall();"><p>请输入您要选择爱好的序号,序号为1-6:</p><input id="wb" name="wb" type="text"><input name="ok" type="button" value="确定" onclick="checkone();"></form><script type="text/javascript">function checkall() {var hobby = document.getElementsByTagName("input");for (var i = 0; i < hobby.length; i++) {if (hobby[i].type == "checkbox") {hobby[i].checked = true;}}}function clearall() {var hobby = document.getElementsByName("hobby");for (var i = 0; i < hobby.length; i++) {if (hobby[i].type == "checkbox") {hobby[i].checked = false;}}}function checkone() {var j = document.getElementById("wb").value;var hobby = document.getElementsByName("hobby")hobby[j-1].checked = true;}</script>
</body></html>

  (4)getAttribute()方法

  通过元素节点的属性名称获取属性的值。

  语法:

  elementNode.getAttribute(name)

  说明:

  1. elementNode:使用getElementById()、getElementsByTagName()等方法,获取到的元素节点。

  2. name:要想查询的元素节点的属性名字

  看看下面的代码,获取h1标签的属性值:

  

  运行结果:  

  h1标签的ID :alink
  h1标签的title :getAttribute()获取标签的属值

   (5)setAttribute()方法

  setAttribute() 方法增加一个指定名称和值的新属性,或者把一个现有的属性设定为指定的值。

  语法:

  elementNode.setAttribute(name,value)

  说明:

  1.name: 要设置的属性名。

  2.value: 要设置的属性值。

  注意:

  1.把指定的属性设置为指定的值。如果不存在具有指定名称的属性,该方法将创建一个新属性。

  2.类似于getAttribute()方法,setAttribute()方法只能通过元素节点对象调用的函数。

  (6)节点属性

  在文档对象模型 (DOM) 中,每个节点都是一个对象。DOM 节点有三个重要的属性 :

  1. nodeName : 节点的名称

  2. nodeValue :节点的值

  3. nodeType :节点的类型

  一、nodeName 属性: 节点的名称,是只读的。

  1. 元素节点的 nodeName 与标签名相同
  2. 属性节点的 nodeName 是属性的名称
  3. 文本节点的 nodeName 永远是 #text
  4. 文档节点的 nodeName 永远是 #document

  二、nodeValue 属性:节点的值

  1. 元素节点的 nodeValue 是 undefined 或 null
  2. 文本节点的 nodeValue 是文本自身
  3. 属性节点的 nodeValue 是属性的值

  三、nodeType 属性: 节点的类型,是只读的。以下常用的几种结点类型:

  元素类型    节点类型
    元素          1
    属性          2
    文本          3
    注释          8
    文档          9

  案例:

  在<script>的标签内容,获取所有LI标签,并输出相应节点的名称、节点的值、节点的类型。

<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>节点属性</title>
</head>
<body><ul><li>javascript</li><li>HTML/CSS</li><li>jQuery</li>     </ul><script type="text/javascript">var getli=document.getElementsByTagName("li")for(var i=0;i<getli.length;i++){document.write("第"+(i+1)+"个节点的名称"+getli[i].nodeName+","+"节点的属性值"+getli[i].nodeValue+","+"节点的类型"+getli[i].nodeType+"<br/>");}</script>
</body>
</html>

  (7)访问子结点childNodes

  访问选定元素节点下的所有子节点的列表,返回的值可以看作是一个数组,他具有length属性。

  语法:

  elementNode.childNodes

  注意:

  如果选定的节点没有子节点,则该属性返回不包含节点的 NodeList。

  我们来看看下面的代码:

  

  运行结果:

  IE:

    UL子节点个数:3节点类型:1

  其它浏览器:

     UL子节点个数:7节点类型:3

  注意:

  1. IE全系列、firefox、chrome、opera、safari兼容问题

  2. 节点之间的空白符,在firefox、chrome、opera、safari浏览器是文本节点,所以IE是3,其它浏览器是7,如下图所示:

  

  如果把代码改成这样:

  <ul><li>javascript</li><li>jQuery</li><li>PHP</li></ul>

  运行结果:(IE和其它浏览器结果是一样的)

    UL子节点个数:3节点类型:1

  (8)访问子结点的第一和最后项

  一、firstChild 属性返回‘childNodes’数组的第一个子节点。如果选定的节点没有子节点,则该属性返回 NULL。

  语法:

  node.firstChild

  说明:与elementNode.childNodes[0]是同样的效果。

  二、 lastChild 属性返回‘childNodes’数组的最后一个子节点。如果选定的节点没有子节点,则该属性返回 NULL。

  语法:

  node.lastChild

  说明:与elementNode.childNodes[elementNode.childNodes.length-1]是同样的效果。

  注意: 上一节中,我们知道Internet Explorer 会忽略节点之间生成的空白文本节点,而其它浏览器不会。我们可以通过检测节点类型,过滤子节点。

  (9)访问父节点parentNode

  获取指定节点的父节点

  语法:

  elementNode.parentNode

  注意:父节点只能有一个。

  看看下面的例子,获取 P 节点的父节点,代码如下:

  <div id="text"><p id="con"> parentNode 获取指点节点的父节点</p></div> <script type="text/javascript">var mynode= document.getElementById("con");document.write(mynode.parentNode.nodeName);</script>

  运行结果:

  parentNode 获取指点节点的父节点DIV

  访问祖节点:

  elementNode.parentNode.parentNode

  看看下面的代码:

  <div id="text">  <p>parentNode      <span id="con"> 获取指点节点的父节点</span></p></div> <script type="text/javascript">var mynode= document.getElementById("con");document.write(mynode.parentNode.parentNode.nodeName);</script>

  运行结果:

  parentNode获取指点节点的父节点DIV

  注意: 浏览器兼容问题,chrome、firefox等浏览器标签之间的空白也算是一个文本节点。

  (10)访问兄弟节点

  1. nextSibling 属性可返回某个节点之后紧跟的节点(处于同一树层级中)。

  语法:

  nodeObject.nextSibling

  说明:如果无此节点,则该属性返回 null。

  2. previousSibling 属性可返回某个节点之前紧跟的节点(处于同一树层级中)。

  语法:

  nodeObject.previousSibling  

  说明:如果无此节点,则该属性返回 null。

  注意: 两个属性获取的是节点。Internet Explorer 会忽略节点间生成的空白文本节点(例如,换行符号),而其它浏览器不会忽略。

  解决问题方法:

  判断节点nodeType是否为1, 如是为元素节点,跳过。

  

  运行结果:

  LI = javascriptnextsibling: LI = jquery

  案例一:使用:get_nextSibling()访问后一个兄弟节点

<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>nextSibling</title>
</head>
<body>
<ul id="u1">   <li id="a">javascript</li>   <li id="b">jquery</li>   <li id="c">html</li>   </ul>   <ul id="u2">   <li id="d">css3</li>   <li id="e">php</li>   <li id="f">java</li>   </ul>
<script type="text/javascript">function get_nextSibling(n){var x=n.nextSibling;while (x && x.nodeType!=1){x=x.nextSibling;}return x;}var x=document.getElementsByTagName("li")[0];document.write(x.nodeName);document.write(" = ");document.write(x.innerHTML);var y=get_nextSibling(x);if(y!=null){document.write("<br />nextsibling: ");document.write(y.nodeName);document.write(" = ");document.write(y.innerHTML);}else{document.write("<br>已经是最后一个节点");      }</script>
</body>
</html>

  案例二:使用:get_previousSibling()访问前一个兄弟节点

<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>nextSibling</title>
</head>
<body>
<ul id="u1">   <li id="a">javascript</li>   <li id="b">jquery</li>   <li id="c">html</li>   </ul>   <ul id="u2">   <li id="d">css3</li>   <li id="e">php</li>   <li id="f">java</li>   </ul>
<script type="text/javascript">function get_previousSibling(n){var x=n.previousSibling;while (x && x.nodeType!=1){x=x.previousSibling;}return x;}var x=document.getElementsByTagName("li")[1];document.write(x.nodeName);document.write(" = ");document.write(x.innerHTML);var y=get_previousSibling(x);if(y!=null){document.write("<br />previoussibling: ");document.write(y.nodeName);document.write(" = ");document.write(y.innerHTML);}else{document.write("<br>已经是第一个节点");      }</script>
</body>
</html>

  (11)插入节点appendChild()

  在指定节点的最后一个子节点列表之后添加一个新的子节点。

  语法:

  appendChild(newnode)

  参数:

  newnode:指定追加的节点。

  我们来看看,div标签内创建一个新的 P 标签,代码如下:

  

  运行结果:

  HTMLJavaScriptThis is a new p

  (12)插入节点insertBefore()

  insertBefore() 方法可在已有的子节点前插入一个新的子节点。

  语法:

  insertBefore(newnode,node);

  参数:

  newnode: 要插入的新节点。

  node: 指定此节点前插入节点。

  我们在来看看下面代码,在指定节点前插入节点。

  

  运行结果:

  This is a new pJavaScriptHTML

  注意: otest.insertBefore(newnode,node); 也可以改为:  otest.insertBefore(newnode,otest.childNodes[0]);

  (13)删除节点removeChild()

  removeChild() 方法从子节点列表中删除某个节点。如删除成功,此方法可返回被删除的节点,如失败,则返回 NULL。

  语法:

  nodeObject.removeChild(node)

  参数:

  node :必需,指定需要删除的节点。

  我们来看看下面代码,删除子点。

  

  运行结果:

  HTML删除节点的内容: javascript

  注意: 把删除的子节点赋值给 x,这个子节点不在DOM树中,但是还存在内存中,可通过 x 操作。

  如果要完全删除对象,给 x 赋 null 值,代码如下:

  

  案例:

  定义clearText()函数,完成节点内容的删除。

  1. 删除该节点的内容,先要获取子节点。

  2. 然后使用循环遍历每个子节点。

  3. 使用removeChild()删除节点。

<!DOCTYPE HTML>
<html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"><title>无标题文档</title>
</head><body><div id="content"><h1>html</h1><h1>php</h1><h1>javascript</h1><h1>jquery</h1><h1>java</h1></div><script type="text/javascript">function clearText() {var content = document.getElementById("content");var contentChild = content.childNodes;for (var i = 0; i < contentChild.length; i++) {if (contentChild[i].nodeType == 1) {content.removeChild(content.childNodes[i]);}}}</script><button onclick="clearText()">清除节点内容</button>
</body></html>

  (14)替换元素节点replaceChild()

  replaceChild 实现子节点(对象)的替换。返回被替换对象的引用。

  语法:

  node.replaceChild (newnode,oldnew ) 

  参数:

  newnode : 必需,用于替换 oldnew 的对象。 
  oldnew : 必需,被 newnode 替换的对象。

  我们来看看下面的代码:

  

  效果: 将文档中的 Java 改为 JavaScript。

  注意: 

  1. 当 oldnode 被替换时,所有与之相关的属性内容都将被移除。

  2. newnode 必须先被建立。

  案例:实现将 b 标签替换成 i 标签。

<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>无标题文档</title>
</head>
<body><div><b id="oldnode">JavaScript</b>是一个很常用的技术,为网页添加动态效果。</div><a href="javascript:replaceMessage()"> 将加粗改为斜体</a><script type="text/javascript">function replaceMessage(){var oldnode = document.getElementById("oldnode");  var newNode = document.createElement("i");  var newnodetext = document.createTextNode(oldnode.innerHTML);newNode.appendChild(newnodetext);var oldNode = document.getElementById("oldnode");oldnode.parentNode.replaceChild(newNode,oldNode);}    </script></body>
</html>

  (15)创建元素节点createElement

  createElement()方法可创建元素节点。此方法可返回一个 Element 对象。

  语法:

  document.createElement(tagName)

  参数:

  tagName:字符串值,这个字符串用来指明创建元素的类型。

  注意:要与appendChild() 或 insertBefore()方法联合使用,将元素显示在页面中。

  我们来创建一个按钮,代码如下:

  <script type="text/javascript">   var body = document.body;    var input = document.createElement("input");  input.type = "button";  input.value = "创建一个按钮";  body.appendChild(input);  </script>  

  效果:在HTML文档中,创建一个按钮。

  我们也可以使用setAttribute来设置属性,代码如下:

  <script type="text/javascript">  var body= document.body;             var btn = document.createElement("input");  btn.setAttribute("type", "text");  btn.setAttribute("name", "q");  btn.setAttribute("value", "使用setAttribute");  btn.setAttribute("onclick", "javascript:alert('This is a text!');");       body.appendChild(btn);  </script>  

  效果:在HTML文档中,创建一个文本框,使用setAttribute设置属性值。 当点击这个文本框时,会弹出对话框“This is a text!”。

  案例:实现在HTML文档中创建一个链接,并设置相应属性。

<!DOCTYPE HTML>
<html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"><title>无标题文档</title>
</head><body><script type="text/javascript">var main = document.body;// 创建链接function createa(url, text) {//写法一    var alink = document.createElement("a");alink.setAttribute("href", url);alink.setAttribute("value", text);alink.innerHTML = text;alink.setAttribute("target", "_blank");main.appendChild(alink);//写法二 // var input = document.createElement("a");// input.href = url;// input.value = text;// input.innerHTML=text;// input.target = "_blank";// main.appendChild(input);
    }// 调用函数创建链接
    createa("http://www.imooc.com", "慕课网");</script>
</body></html>

  (16)创建文本节点createTextNode

  reateTextNode() 方法创建新的文本节点,返回新创建的 Text 节点。

  语法:

  document.createTextNode(data)

  参数:

  data : 字符串值,可规定此节点的文本。

  我们来创建一个<div>元素并向其中添加一条消息,代码如下:

  

  运行结果:

  

  (17)浏览器窗口可视区域大小

  获得浏览器窗口的尺寸(浏览器的视口,不包括工具栏和滚动条)的方法:

  一、对于IE9+、Chrome、Firefox、Opera 以及 Safari:

  •  window.innerHeight - 浏览器窗口的内部高度

  •  window.innerWidth - 浏览器窗口的内部宽度

  二、对于 Internet Explorer 8、7、6、5:

  •  document.documentElement.clientHeight表示HTML文档所在窗口的当前高度。

  •  document.documentElement.clientWidth表示HTML文档所在窗口的当前宽度。

  或者

  Document对象的body属性对应HTML文档的<body>标签

  •  document.body.clientHeight

  •  document.body.clientWidth

  在不同浏览器都实用的 JavaScript 方案:

  var w= document.documentElement.clientWidth|| document.body.clientWidth;var h= document.documentElement.clientHeight|| document.body.clientHeight;

  (18)网页尺寸scrollHeight

  scrollHeight和scrollWidth,获取网页内容高度和宽度。

  一、针对IE、Opera:

  scrollHeight 是网页内容实际高度,可以小于 clientHeight。

  二、针对NS、FF:

  scrollHeight 是网页内容高度,不过最小值是 clientHeight。也就是说网页内容实际高度小于 clientHeight 时,scrollHeight 返回 clientHeight 。

  三、浏览器兼容性

  var w=document.documentElement.scrollWidth|| document.body.scrollWidth;var h=document.documentElement.scrollHeight|| document.body.scrollHeight;

  注意:区分大小写

  scrollHeight和scrollWidth还可获取Dom元素中内容实际占用的高度和宽度。

  (19)网页尺寸offsetHeight

  offsetHeight和offsetWidth,获取网页内容高度和宽度(包括滚动条等边线,会随窗口的显示大小改变)。

  一、值

  offsetHeight = clientHeight + 滚动条 + 边框。

  二、浏览器兼容性

  var w= document.documentElement.offsetWidth|| document.body.offsetWidth;var h= document.documentElement.offsetHeight|| document.body.offsetHeight;

  (20)网页卷去的距离与偏移量

  我们先来看看下面的图:

  

  scrollLeft:设置或获取位于给定对象左边界与窗口中目前可见内容的最左端之间的距离 ,即左边灰色的内容。

  scrollTop:设置或获取位于对象最顶端与窗口中可见内容的最顶端之间的距离 ,即上边灰色的内容。

  offsetLeft:获取指定对象相对于版面或由 offsetParent 属性指定的父坐标的计算左侧位置 。

  offsetTop:获取指定对象相对于版面或由 offsetParent 属性指定的父坐标的计算顶端位置 。

  注意:

  1. 区分大小写

  2. offsetParent:布局中设置postion属性(Relative、Absolute、fixed)的父容器,从最近的父节点开始,一层层向上找,直到HTML的body。

  测试:

<!DOCTYPE HTML>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<script type="text/javascript">function req(){var div = document.getElementById("div1");document.getElementById("li1").innerHTML = (div.offsetTop)+"px";//div1距离屏幕顶部的距离
          document.getElementById("li2").innerHTML = (div.offsetLeft)+"px";//div1距离屏幕左部的距离
          document.getElementById("li3").innerHTML = (div.scrollTop)+"px";//div1纵向滚动条滚动的距离
          document.getElementById("li4").innerHTML = (div.scrollLeft)+"px";//div1横向滚动条滚动的距离
     }
</script>
</head>
<body style="border:10px solid #ccc;padding:0px 0px;margin:5px 10px"><div style="width:60%;border-right:1px dashed red;float:left;"><div style="float:left;"><div id="div1" style="border:5px red solid;height:300px;width:200px;overflow:auto"><div style="height:500px;width:400px">请调整横竖滚动条后,点击按钮后查看offsetTop、offsetLeft、scrollTop、scrollLeft值。</div></div><input type="button" value="点击我!" onclick="req()" style="border: 1px solid purple;height: 25px;"/></div></div><div style="width:30%;float:left;"><ul style="list-style-type: none; line-height:30px;">结果:<li>offsetTop : <span id="li1"></span></li><li>offsetLeft : <span id="li2"></span></li><li> scrollTop : <span id="li3"></span></li><li>scrollLeft : <span id="li4"></span></li></ul></div><div style="clear:both;"></div>
</body>
</html>

  章节练习:

  制作一个表格,显示班级的学生信息。

  要求:

  1. 鼠标移到不同行上时背景色改为色值为 #f2f2f2,移开鼠标时则恢复为原背景色 #fff

  2. 点击添加按钮,能动态在最后添加一行

  3. 点击删除按钮,则删除当前行

<!DOCTYPE html>
<html><head><title> new document </title><meta charset="utf-8" /><script type="text/javascript">window.onload = function() {var gettr = document.getElementsByTagName("tr");for (var i = 0; i < gettr.length; i++) {bgchange(gettr[i]);}}// 鼠标移动改变背景,可以通过给每行绑定鼠标移上事件和鼠标移除事件来改变所在行背景色。function bgchange(obj) {obj.onmouseover = function() {obj.style.backgroundColor = "#f2f2f2";}obj.onmouseout = function() {obj.style.backgroundColor = "#fff";}}// 编写一个函数,供添加按钮调用,动态在表格的最后一行添加子节点;var num = 2;function addtr() {num++;var newtr = document.createElement("tr");var torder = document.createElement("td");var tname = document.createElement("td");torder.innerHTML = "xh00" + num;tname.innerHTML = "新同学" + num;var tdel = document.createElement("td");tdel.innerHTML = "<a href='javascript:;' οnclick='deltr(this)'>删除</a>";var otable = document.getElementById("table");otable.appendChild(newtr);newtr.appendChild(torder);newtr.appendChild(tname);newtr.appendChild(tdel);var gettr = document.getElementsByTagName("tr");for (var i = 0; i < gettr.length; i++) {bgchange(gettr[i]);}}// 创建删除函数function deltr(obj) {var dtr = obj.parentNode.parentNode;dtr.parentNode.removeChild(dtr);}</script>
</head><body><table border="1" width="50%" id="table"><tr><th>学号</th><th>姓名</th><th>操作</th></tr><tr><td>xh001</td><td>王小明</td><td><a href="javascript:;" onclick="deltr(this)">删除</a></td><!--在删除按钮上添加点击事件  --></tr><tr><td>xh002</td><td>刘小芳</td><td><a href="javascript:;" onclick="deltr(this)">删除</a></td><!--在删除按钮上添加点击事件  --></tr></table><input type="button" value="添加一行" onclick="addtr()" /><!--在添加按钮上添加点击事件  -->
</body></html>

转载于:https://www.cnblogs.com/jiangtengteng/p/5330690.html

二、JavaScript语言--JS基础--JavaScript进阶篇--DOM对象 控制HTML元素相关推荐

  1. JavaScript DOM对象控制HTML元素详解

    一.DOM对象控制HTML     1.方法: getElementsByName()  获取name getElementsByTagName()  获取元素 getAttribute()  获取元 ...

  2. web前端学习(四)JavaScript学习笔记部分(7)-- JavaScript DOM对象控制HTML元素详解...

    1.方法 getElementsByName() 获取name 可以获取一个数组类型数据(参数加引号) getElementsByTagName() 获取元素   getAttribute() 获取元 ...

  3. js基础--javascript基础概念之函数

    js基础--javascript基础概念之函数 引用w3c介绍: 函数是由事件驱动的或者当它被调用时执行的可重复使用的代码块. JavaScript 函数语法 函数就是包裹在花括号中的代码块,前面使用 ...

  4. javascript原生事件句柄、BOM、DOM对象属性方法总结

    javascript原生事件句柄.BOM.DOM对象属性方法总结 JS事件句柄 事件句柄 类型 说明 onabort 事件句柄 图像加载被中断 onblur 事件句柄 元素失去焦点 onfocus 事 ...

  5. (一)初识JavaScript——无处不在的JavaScript,js基础

    一 ."理解"JavaScript语言 人们总觉得对 C# 或者 Java 的了解,能为他们理解 JavaScript 的工作原理打下坚实的基础,然而这时一个陷阱.与其他语言相比 ...

  6. 6、JavaScript进阶篇③——浏览器对象、Dom对象

    一.浏览器对象 1. window对象 window对象是BOM的核心,window对象指当前的浏览器窗口. window对象方法: 注意:在JavaScript基础篇中,已讲解了部分属性,windo ...

  7. JavaScript进阶篇③ — 浏览器对象、Dom对象

    一.浏览器对象 1. window对象 window对象是BOM的核心,window对象指当前的浏览器窗口. window对象方法: 注意:在JavaScript基础篇中,已讲解了部分属性,windo ...

  8. JavaScript(一)——JS基础

    文章目录 JS简介 JS使用 JS输出 JS语句 JS语法 - JS值 - JS注释 - 标识符 - 对大小写敏感 - 驼峰式大小写 变量 数据类型 - 为什么需要数据类型 - 简单数据类型 - 数据 ...

  9. Enterprise Library Step By Step系列(十二):异常处理应用程序块——进阶篇

    一.把异常信息Logging到数据库 在日志和监测应用程序块中,有朋友提意见说希望能够把异常信息Logging到数据库中,在这里介绍一下具体的实现方法. 1.创建相关的数据库环境: 我们可以用日志和监 ...

最新文章

  1. 英语口语 week13 Monday
  2. 有了这款IDEA插件,再也不需要postman了
  3. Java与Python的区别告诉你,学什么看自己
  4. [渝粤教育] 广东-国家-开放大学 21秋期末考试物权法10774k1
  5. appium 重新启动apk
  6. SVN入门 TortoiseSVN 检出
  7. php中关系运算符的优先级,PHP 运算符优先级
  8. 获得客户端真实IP的方法
  9. sql语句日期格式转换
  10. 读书笔记《大数据时代》
  11. 判断质数的所有方法详解(C语言)
  12. 上古卷轴5json文件修改_改进名称的新Tempering名称定制SSE
  13. Vue中的keep-alive组件
  14. Python 爬取蚂蜂窝旅游攻略 (+Scrapy框架+MySQL)
  15. Android 动态修改app名称(市场和手机中显示两个不同的名称)
  16. 劝人自杀情绪多变,人工智能真不是个“东西”
  17. 为解决iPhone绿屏问题,苹果将和这家中国公司合作
  18. STM32的TIM边沿与周期对齐的坑
  19. Jmeter书中不会教你的(7)——prev变量用于输出请求和响应内容
  20. ubuntu安装CD-HIT

热门文章

  1. NSString之Format
  2. Paxos与zookeeper
  3. Chapter 5 带颜色的同心圆
  4. 使用Ubuntu挂载NTFS格式分区
  5. Linux RPM 常用命令
  6. leetcode算法题--唯一元素的和
  7. leetcode算法题--合并两个排序的链表
  8. docker redis 配置文件_基于Docker搭建Redis一主两从三哨兵
  9. 离散数学范式c语言实验报告,离散数学实验报告-利用真值表法求主析取范式及主合取范式的实现...
  10. PHP 8 确认支持 JIT