
var para=document.createElement("p")
如需向 <p>元素添加文本,您必须首先创建文本节点。这段代码创建了一个文本节点:
var node=document.createTextNode("这是一个新段落。")
然后您必须向 <p>元素追加这个文本节点:
para.appendChild(node)
最后您必须向一个已有的元素追加这个新元素。
这段代码找到一个已有的元素:
var element=document.getElementById("div1")
以下代码在已存在的元素后添加新元素:
element.appendChild(para)
根据 W3C 的 HTML DOM 标准,HTML 文档中的所有内容都是节点:
通过 HTML DOM,树中的所有节点均可通过 JavaScript 进行访问。所有 HTML 元素(节点)均可被修改,也可以创建或删除节点。
<code>
<html>
<head>
<title>DOM 教程</title>
</head>
<body>
<p>Hello world!</p>
</body>
</html>
</code>
上面的 HTML 中:
html节点没有父节点;它是根节点
head 和 <body>的父节点是 <html>节点
文本节点 "Hello world!" 的父节点是 p节点
html 节点拥有两个子节点:<head>和 <body>
head节点拥有一个子节点:<title>节点
title 节点也拥有一个子节点:文本节点 "DOM 教程"
head 元素是 <html>元素的首个子节点
body 元素是 <html>元素的最后一个子节点
p 元素是 <body>元素的最后一个子节点
方法是我们可以在节点(HTML 元素)上执行的动作。
一些常用的 HTML DOM 方法:
一些常用的 HTML DOM 属性:
属性是节点(HTML 元素)的值,您能够获取或设置。
获取或替换HTML元素的值
规定节点的名称
规定节点的值
返回节点的类型,nodeType是只读的
访问 HTML DOM - 查找 HTML 元素。
访问 HTML 元素等同于访问节点
返回带有指定ID的元素
<code>
document.getElementByld("intro")
</code>
返回带有指定标签名的所有元素
<code>
x = document.getElementByTagName("p")
document.write(x[0].innerHTML)
</code>
查找带有相同类名的所有HTML元素
<code>document.getElementsByClassName("intro")</code>
修改 HTML = 改变元素、属性、样式和事件。
改变元素内容的最简答的方法是使用 innerHTML 属性。
<code>
document.getElementById("p1").innerHTML="New text!"
</code>
访问 HTML 元素的样式对象
<code>
document.getElementById("p2").style.color="blue"
document.getElementById("p2").style.fontFamily="Arial"
document.getElementById("p2").style.fontSize="larger"
</code>
如需向 HTML DOM 添加新元素,您首先必须创建该元素(元素节点),然后把它追加到已有的元素上。
<code>
var para=document.createElement("p")
var node=document.createTextNode("This is new.")
para.appendChild(node)
var element=document.getElementById("div1")
element.appendChild(para)
</code>
当 HTML 元素”有事情发生“时,浏览器就会生成事件:
添加、删除和替换 HTML 元素。
如需向 HTML DOM 添加新元素,您首先必须创建该元素,然后把它追加到已有的元素上。
<code>
var para=document.createElement("p") //创建文本节点
var node=document.createTextNode("This is new.") //向 p 元素追加文本节点
para.appendChild(node)//向已有元素追加这个新元素
</code>
appendChild() 方法,将新元素作为父元素的最后一个子元素进行添加。
如果不希望如此,您可以使用 insertBefore() 方法。
如需删除 HTML 元素,您必须清楚该元素的父元素
<code>
var parent=document.getElementById("div1")
var child=document.getElementById("p1")
parent.removeChild(child)
</code>
当想要删除一个子元素但是不知道他的父元素的时候,可以用parentNode来查找他的父元素。
<code>
var child=document.getElementById("p1")
child.parentNode.removeChild(child)
</code>
<code>
var parent=document.getElementById("div1")
var child=document.getElementById("p1")
var para=document.createElement("p")
var node=document.createTextNode("This is new.")
para.appendChild(node)
parent.replaceChild(para,child)
</code>
HTML DOM 允许 JavaScript 对 HTML 事件作出反应
当事件发生时,可以执行 JavaScript,比如当用户点击一个 HTML 元素时。
<code><h1 onclick="this.innerHTML='hello!'">请点击这段文本!</h1></code>
如需向 HTML 元素分配事件,可以使用事件属性
HTML DOM 允许使用 JavaScript 向 HTML 元素分配事件
举例:为 button 元素分配 onclick 事件:
<code><script>
document.getElementById("myBtn").onclick=function(){displayDate()}
</script></code>
当用户进入或离开页面时,会触发 onload 和 onunload 事件。
onchange 事件常用于输入字段的验证。
onmouseover 和 onmouseout 事件可用于在鼠标指针移动到或离开元素时触发函数。
onmousedown、onmouseup 以及 onclick 事件是鼠标点击的全部过程。首先当某个鼠标按钮被点击时,触发 onmousedown 事件,然后,当鼠标按钮被松开时,会触发 onmouseup 事件,最后,当鼠标点击完成时,触发 onclick 事件。
通过 HTML DOM,您能够使用节点关系在节点树中导航。
getElementsByTagName() 方法返回节点列表。节点列表是一个节点数组。
length 属性定义节点列表中节点的数量。
您能够使用三个节点属性:parentNode、firstChild 以及 lastChild ,在文档结构中进行导航
这里有两个特殊的属性,可以访问全部文档:
document.documentElement - 全部文档
document.body - 文档的主体
除了 innerHTML 属性,您也可以使用 childNodes 和 nodeValue 属性来获取元素的内容。
html5新增标签大致如下:
<canvas>新元素
<canvas> 标签定义图形,比如图表和其他图像。该标签基于 JavaScript 的绘图 API
新多媒体元素
<audio> 定义音频内容
<video> 定义视频(video 或者 movie)
<source> 定义多媒体资源 <video>和 <audio>
<embed> 定义嵌入的内容,比如插件。
<track> 为诸如 <video>和 <audio>元素之类的媒介规定外部文本轨道。
新表单元素
<datalist> 定义选项列表。请与 input 元素配合使用该元素,来定义 input 可能的值。
<keygen> 规定用于表单的密钥对生成器字段。
<output> 定义不同类型的输出,比如脚本的输出。
新的语义和结构元素
HTML5提供了新的元素来创建更好的页面结构:
<article> 定义页面独立的内容区域。
<aside> 定义页面的侧边栏内容。
<bdi> 允许您设置一段文本,使其脱离其父元素的文本方向设置。
<command> 定义命令按钮,比如单选按钮、复选框或按钮
<details> 用于描述文档或文档某个部分的细节
<dialog> 定义对话框,比如提示框
<summary> 标签包含 details 元素的标题
<figure> 规定独立的流内容(图像、图表、照片、代码等等)。
<figcaption> 定义 <figure>元素的标题
<footer> 定义 section 或 document 的页脚。
<header> 定义了文档的头部区域
<mark> 定义带有记号的文本。
<meter> 定义度量衡。仅用于已知最大和最小值的度量。
<nav> 定义导航链接的部分。
<progress> 定义任何类型的任务的进度。
<ruby> 定义 ruby 注释(中文注音或字符)。
<rt> 定义字符(中文注音或字符)的解释或发音。
<rp> 在 ruby 注释中使用,定义不支持 ruby 元素的浏览器所显示的内容。
<section> 定义文档中的节(section、区段)。
<time> 定义日期或时间。
<wbr> 规定在文本中的何处适合添加换行符。
初学者建议多访问下菜鸟教程:网页链接,都是比较全面的基础知识,可以看做编程词典,即使老司机也经常去查一些资料。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)