JavaScript 之 DOM
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的更多相关文章
- javascript --- javascript与DOM
javascript与DOM: 我们来个例子,一个HTML里包含一段文本和一个无序的列表. <p id="intro">My first paragraph...< ...
- JavaScript与DOM
文档对象模型Document Object Model DOM(Document Object Model,文档对象模型)是一个通过和JavaScript进行内容交互的API.Javascript和D ...
- Javascript中DOM技术的的简单学习
第十四课DOM技术概述1:DOM概述 文档对象模型DOM(Document Object Model)定义访问和处理HTML文档的标准方法.DOM 将HTML文档呈现为带有元素.属性和文本的树结构(节 ...
- JavaScript与DOM的关系
JavaScript与浏览器的工作 1.浏览器获取并加载你的页面,从上至下解析它的内容. 遇到JavaScript时,浏览器会解析代码,检查它的正确性,然后执行代码. 浏览器还会建立一个HTML页面的 ...
- JavaScript网站设计实践(四)编写about.html页面,利用JavaScript和DOM,选择性的显示和隐藏DIV元素
一.现在我们在网站设计(三)的基础上,来编写about.html页面. 这个页面要用到的知识点是利用JavaScript和DOM实现选择性地显示和隐藏某些DIV about.html页面在前面我们为了 ...
- JavaScript学习笔记(2)——JavaScript和DOM的关系
文档对象模型(Document Object Model,简称DOM),是W3C组织推荐的处理可扩展标志语言的标准编程接口.DOM实际上是以面向对象方式描述的文档模型.DOM定义了表示和修改文档所需的 ...
- JavaScript HTML DOM 元素(节点)
JavaScript HTML DOM 元素(节点) 创建新的 HTML 元素 创建新的 HTML 元素 如需向 HTML DOM 添加新元素,您必须首先创建该元素(元素节点),然后向一个已存在的元素 ...
- JavaScript HTML DOM EventListener
JavaScript HTML DOM EventListener addEventListener() 方法 实例 点用户点击按钮时触发监听事件: document.getElementById(& ...
- JavaScript HTML DOM 事件
JavaScript HTML DOM 事件 HTML DOM 使 JavaScript 有能力对 HTML 事件做出反应. 实例 Mouse Over Me 对事件做出反应 我们可以在事件发生时执行 ...
- JavaScript HTML DOM - 改变CSS
JavaScript HTML DOM - 改变CSS HTML DOM 允许 JavaScript 改变 HTML 元素的样式. 改变 HTML 样式 如需改变 HTML 元素的样式,请使用这个语法 ...
随机推荐
- 艾妮记账本Web开发(开发版)
因为没有办法制作微信小程序版的艾妮记账本所以只能选择做Web开发版,但因为是花时间赶出来到的(但用了我已学的所有Web知识)所以就没有办法按老师的要求写七天的制作过程. 其实真正说起来我的这个Web开 ...
- Python多线程threading的使用
一. threading的参数传递,参数之后的’,‘不能少,此处的’,‘是用来区分此参数作为元组(包含多个参数)来传递的,而不是单个参数传递 #coding:utf- import threading ...
- vue 在浏览器控制台怎么调试 谷歌插件vue Devtools
vue 在浏览器控制台怎么调试 谷歌插件vue Devtools 问题: vuejs里面的变量,怎么用浏览器的console查看? 例如,想在chrome里用console.log查看变量$data, ...
- GoldenGate12.3中新增的Parallel Replicat (PR)介绍
Parallel Replicat介绍 在OGG 12.3.0.1中新增的一项特性parallel replicat(并行投递),相对于传统的投递和集成投递(integrated replicat), ...
- Collections.sort 的日期排序
public static void main(String[] args) throws ParseException { // sort降序排列 List<Date> dates = ...
- 【Python65--tkinter:button】
一.需求:在Label页面增加一个按钮,点击此按钮,页面内容进行变化 思路: 1.上面放一个Label,下面放一个Button 2.采用frame框架 from tkinter import * #定 ...
- Python3 tkinter基础 Radiobutton indicatoron 改变按钮的外观 圆形/方形
Python : 3.7.0 OS : Ubuntu 18.04.1 LTS IDE : PyCharm 2018.2.4 Conda ...
- 【问题解决:信息提示】SpringBoot启动时提示The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path
问题描述 springboot程序在启动时提示信息 [2018-10-24 21:59:05.214] - 440 信息 [restartedMain] --- org.apache.catalina ...
- centos 7 已经开启 22 端口但无法连接
已经开启 22 端口但无法连接 刚买的 vps ,默认 ssh 端口是 29488, 使用以下方式连接ssh -p 29488 root@x.x.x.x觉得加端口有点麻烦, 希望使用默认的 22 端口 ...
- Perl新接触的小命令
0,glob()函数 my @infile = glob("$indir/*.txt.gz"); #获得指定路径下的文件名,并形成列表,如果$indir为空,则自动匹配当前目录下 ...