1. DOM

DOM:Document Object Model 文档对象模型,定义访问和操作结构化文档(HTML)的方式。

在 HTML DOM (Document Object Model) 中 , 每一个元素都是 节点:

   节点树 

  • 文档是一个文档节点。
  • 所有的HTML元素都是元素节点。
  • 所有 HTML 属性都是属性节点。
  • 文本插入到 HTML 元素是文本节点。are text nodes。
  • 注释是注释节点。

通过 HTML DOM,树中的所有节点均可通过 JavaScript 进行访问。所有 HTML 元素(节点)均可被修改,也可以创建或删除节点。

 Document文档对象

当浏览器载入 HTML 文档, 它就会成为 Document 对象

Document 对象使我们可以从脚本中对 HTML 页面中的所有元素进行访问。

标签元素的操作

1)获得元素对象:

根据id获得一个元素:getElementById(id属性值)

根据标签名称获得多个元素:getElementsByTagName(标签名称)

根据class属性获得多个元素:getElementsByClassName(class的属性值)

根据name属性获得多个元素:getElementsByName(name属性值)

2)创建一个新元素:createElement()

3)将元素放到某个父元素的内部:appendChild()

4)删除节点 :removeChild()

5)将一个子节点替换成另一个: replaceChild(newnode,oldnode)

            //创建节点
var oBox = document.getElementById("box");
var oDiv = document.createElement("div");
var oTxt = document.createTextNode("hello dom");
oDiv.appendChild(oTxt);
oBox.appendChild(oDiv); //修改节点
var oDiv = document.createElement("div");
var oBox = document.getElementById("box");
var oP = oBox.getElementsByTagName("p")[0];
var oSpan = document.getElementsByTagName("span")[0]; //var oBody = document.getElementsByTagName("body")[0];
//document.body.replaceChild(oDiv,oSpan);
//oBody.replaceChild(oDiv,oSpan) //删除节点 oBox.removeChild(oP);

  属性的操作

获得属性的值:getAtrribute(name)

设置属性的值:setAtrribute(name,value)

删除某个属性:removeAtrribute(name)

 children  &  childNodes 

获得子元素节点

children 常用,childNodes 会把换行也输出为text。

 innerHTML &  outerHTML  &  innerText

innerHTML 属性返回与调用元素的所有子节点(包括元素、注释和文本节点)对应的 HTML 标记。可读可写

outerHTML 返回调用它的元素及所有子节点的 HTML 标签。 可读可写

innerText 属性可以操作元素中包含的所有文本内容,包括子文档树中的文本。在通过 innerText 读取值时,它会按照由浅入深的顺序,将子文档树中的所有文本拼接起来。在通过 innerText 写入值时,结果会删除元素的所有子节点,插入包含相应文本值的文本节点。

 firstChild/lastChild/parentNode/previousSibling/nextSibling

第一个子节点,最后一个子节点,父亲节点,上一个兄弟节点,下一个兄弟节点

***   firstChild & firstElementChild     第一个子节点

现代浏览器支持这两个   IE低版本不支持firstElementChild。

兼容写法 : oFirst=oUl.firstElementChild || oUl.firstChild  (前后顺序不可颠倒)

      实现表格的添加删除

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
</head>
<body>
姓名:<input type="text">年龄:<input type="text">性别:<input type="text"><input type="button" value="添加">
<table> </table>
<script type="text/javascript">
var aInput = document.getElementsByTagName("input");
var len = aInput.length;
var oTable = document.getElementsByTagName("table")[0]; aInput[aInput.length-1].onclick = function(){ var oTr = document.createElement("tr");
for(var i = 0; i < len-1; i++){
var oTd = document.createElement("td");
//var oTxt = document.createTextNode(aInput[i].value);
oTd.innerHTML = aInput[i].value;
oTr.appendChild(oTd);
} /*var oBtn = document.createElement("input");
oBtn.type = "button";
oBtn.value = "删除";
oTr.appendChild(oBtn);*/
oTr.innerHTML += "<td><input type='button' class='delBtn' value='删除'></td>";
oTable.appendChild(oTr); var oDelBtn = document.getElementsByClassName("delBtn");
/*for(var i = 0; i < oDelBtn.length; i++){
oDelBtn[i].onclick = function(){
oTable.removeChild(this.parentNode.parentNode);
//console.log(this.parentNode.parentNode);
}
}*/
oDelBtn[oDelBtn.length - 1].onclick = function(){
oTable.removeChild(this.parentNode.parentNode);
} } </script>
</body>
</html>

JavaScript 之 DOM的更多相关文章

  1. javascript --- javascript与DOM

    javascript与DOM: 我们来个例子,一个HTML里包含一段文本和一个无序的列表. <p id="intro">My first paragraph...< ...

  2. JavaScript与DOM

    文档对象模型Document Object Model DOM(Document Object Model,文档对象模型)是一个通过和JavaScript进行内容交互的API.Javascript和D ...

  3. Javascript中DOM技术的的简单学习

    第十四课DOM技术概述1:DOM概述 文档对象模型DOM(Document Object Model)定义访问和处理HTML文档的标准方法.DOM 将HTML文档呈现为带有元素.属性和文本的树结构(节 ...

  4. JavaScript与DOM的关系

    JavaScript与浏览器的工作 1.浏览器获取并加载你的页面,从上至下解析它的内容. 遇到JavaScript时,浏览器会解析代码,检查它的正确性,然后执行代码. 浏览器还会建立一个HTML页面的 ...

  5. JavaScript网站设计实践(四)编写about.html页面,利用JavaScript和DOM,选择性的显示和隐藏DIV元素

    一.现在我们在网站设计(三)的基础上,来编写about.html页面. 这个页面要用到的知识点是利用JavaScript和DOM实现选择性地显示和隐藏某些DIV about.html页面在前面我们为了 ...

  6. JavaScript学习笔记(2)——JavaScript和DOM的关系

    文档对象模型(Document Object Model,简称DOM),是W3C组织推荐的处理可扩展标志语言的标准编程接口.DOM实际上是以面向对象方式描述的文档模型.DOM定义了表示和修改文档所需的 ...

  7. JavaScript HTML DOM 元素(节点)

    JavaScript HTML DOM 元素(节点) 创建新的 HTML 元素 创建新的 HTML 元素 如需向 HTML DOM 添加新元素,您必须首先创建该元素(元素节点),然后向一个已存在的元素 ...

  8. JavaScript HTML DOM EventListener

    JavaScript HTML DOM EventListener addEventListener() 方法 实例 点用户点击按钮时触发监听事件: document.getElementById(& ...

  9. JavaScript HTML DOM 事件

    JavaScript HTML DOM 事件 HTML DOM 使 JavaScript 有能力对 HTML 事件做出反应. 实例 Mouse Over Me 对事件做出反应 我们可以在事件发生时执行 ...

  10. JavaScript HTML DOM - 改变CSS

    JavaScript HTML DOM - 改变CSS HTML DOM 允许 JavaScript 改变 HTML 元素的样式. 改变 HTML 样式 如需改变 HTML 元素的样式,请使用这个语法 ...

随机推荐

  1. ubuntu apache 配置虚拟主机 与 二级域名

    一.ubuntu 配置虚拟主机 方法一:添加端口号 第一步进入 /etc/apache2/sites-available/ 目录,将 000-default.conf 复制一份到当前目录下并重命名,然 ...

  2. java8学习笔记之lambda表达式

    1.lambda表达式特点 lambda表达式可以理解为可传递的匿名函数的一种方式,无名称,但有参数列表和函数体以及返回类型,可能还有一个可抛出异常的列表. 2.lambda表达式基本语法 (para ...

  3. 在Qt Quick中一个简单Hello World加载过程

    Qt5基本类图: QQmlEngine    QQmlEngine类提供了一个QML引擎,用于管理由QML文档定义的对象层次架构,QML提供了一个默认的QML上下文(根上下文,获取函数QQmlEngi ...

  4. java-面向对象的多态性摘要

    多态的作用就是用来将接口和实现分离开,改善代码组织结构,增强代码可读性,便于代码的维护. 在java中,讨论多态就是讨论方法调用的绑定,绑定就是将一个方法调用同一个方法主体联系起来.在java中通常叫 ...

  5. 对于get系列className的不兼容

    function getClass(param){ if(id.getElementsByClassName){ return id.getElementsByClassName(param); }e ...

  6. "Login failed for user 'NT AUTHORITY\SYSTEM'. 原因: 无法打开明确指定的数据库。"异常处理

    公司一台SQL Server服务器一直报 "Login failed for user 'NT AUTHORITY\SYSTEM'. 原因: 无法打开明确指定的数据库."错误,按网 ...

  7. bitbucket迁移

    bitbucket 迁移 1.停止向旧仓库地址提交代码 [dev]2.导入代码至新仓库地址 [op]3.修改本地仓库地址 第一种方式:git remote set-url origin [url] ; ...

  8. version control的简单认知

    version control 版本控制是一种记录文件或文件集随时间变化的系统,以便您以后可以调用特定版本.对于本书中的示例,您将使用软件源代码作为受版本控制的文件,但实际上您可以使用计算机上的几乎任 ...

  9. GlitchBot

    问题 F: GlitchBot 时间限制: 1 Sec  内存限制: 128 MB 提交: 230  解决: 113 [提交] [状态] [命题人:admin] 题目描述 One of our del ...

  10. JavaScript-DOM(2)

    内部样式及外部样式的获取及修改 内部样式或外部样式不能通过style属性获取样式 IE浏览器:var width = div1.currentStyle.width; 非IE:window.getCo ...