家好,我是IT共享者,人称皮皮。
相信做网站对JavaScript再熟悉不过了,它是一门脚本语言,不同于Python的是,它是一门浏览器脚本语言,而Python则是服务器脚本语言,我们不光要会Python,还要会JavaScript,因为它对做网页方面是有很大作用的。
这是我们用的最普遍的一个文档对象了,专门用来操作DOM节点时用。
document.getElementById() #通过id查找HTML元素
document.getElementsByName() #通过name查找HTML元素
document.getElementsByTagName() #通过标签名查找HTML元素
document.getElementsByClassName() #通过类名查找HTML元素
document.querySelector(".h") #第一个类名为 "h" 的元素
document.querySelectorAll("div.no, div#h") #所有class为"no"或者id为"h"的div元素
document.body #获取body标签
document.documentElement #获取html标签
document.cookie #网页cookie
document.domain #文档的域名
document.lastModified #文档被最后修改的日期和时间
document.referrer #载入当前文档的文档的URL
document.title #当前文档的标题
document.URL #当前文档的URL
document.doctype #当前文档的doctype
document.baseURI #当前文档的绝对URI
document.documentMode #浏览器使用的模式
document.documentURI #文档的URI
document.implementation #DOM实现
document.inputEncoding #文档的编码(字符集)
document.readyState #文档的(加载)状态
document.strictErrorChecking #是否强制执行错误检查
document.write('hello world') 向文档写入文本
document.writeln('hello world') 向文档写入文本并换行
document.all #所有html元素
document.anchors #所有Anchor引用
document.forms #所有的表单引用
document.images #所有的图片引用
document.links #所有的超链接引用
document.scripts #所有的脚本引用
document.embeds #所有的流媒体引用
childNodes #获取子节点的集合 ,返回数组 ,并把换行和空格也当成是节点信息。
children #获取子节点的集合 ,返回数组
firstChild #获取第一个子元素 并把换行和空格也当成是节点信息
firstElementChild #获取第一个子节点
lastChild #获取最后一个子节点 并把换行和空格也当成是节点信息
lastElementChild #获取最后一个子节点
parentNode #获取父节点
parentElement #获取父节点(IE)
offsetParent #获取所有父节点 对应的值是body下的所有节点信息
previousSibling #获取上一个兄弟节点 匹配字符,包括换行和空格,而不是节点
previousElementSibling #获取上一个兄弟节点 直接匹配节点
nextSibling #获取下一个兄弟节点 匹配字符,包括换行和空格,而不是节点
nextElementSibling #获取下一个兄弟节点 直接匹配节点
ownerDocument #元素的根节点
这里我们获取到了所有的Div元素,我们可以针对性的获取一个ID下的Div的子元素以及它的兄弟和父,子元素,如下:
我们可以自定义节点并添加值,不过要将它添加到文档中去,所以必须添加节点,一般和下方的增加节点配套使用。
document.createElement(标签) #创建HTML元素
document.createTextNode(文本) #给文档添加文本
document.createComment(文本) #创建一个注释节点
document.createDocumentFragment() #创建文档粉碎节点
appendChild(节点) #节点被添加到元素的末尾
insertBefore(a,b) #a节点会插入b节点的前面
removeChild(节点名) #被移除的节点仍在文档中,只是文档中已没有其位置了
replaceChild(插入的节点,被替换的节点)
a.cloneChild() #复制a节点,复制出来的节点作为返回值为true时,则a元素后代也一并复制。否则,仅复制a元素本身
#节点类型 nodeType 有三种情况
#1.元素节点 2.属性节点 3.文本节点
#节点名称 nodeName
#节点值 nodeValue
#元素节点没节点值,为null
#文本节点的节点值就是文本
#属性节点的节点值就是该属性值
#节点属性获取
a.width
a['width']
a.gerAttribute(属性名) 返回指定的属性值
a.gerAttributeNode(属性名) 返回指定的属性节点
节点属性设置
a.width=400
a['width']=400
a.attributes['width']=400
a.setAttribute('width',400) 添加指定的属性
a.setAttributeNode(b) 添加指定的属性节点
#节点属性删除
a.removeChild(子节点) 从元素中移除子节点
a.removeAttribute(属性) 从元素中移除指定属性
a.removeAttributeNode(属性) 移除指定的属性节点,并返回被移除的节点
a.id 获取当前元素的id
a.className 获取当前元素的class
a.classList 获取当前元素的class列表
a.accessKey='w' 设置或返回元素的快捷键
a.namespaceURI 返回指定节点的命名空间的 URI
a.dir 设置或返回元素的内容是否可编辑
a.normalize() 合并元素中相邻的文本节点,并移除空的文本节点
a.tabIndex='3' 设置或返回元素的tab键控制次序
a.tagName 返回元素的标签名
a.textContent 设置或返回节点及其子代的文本内容
a.title 设置或返回元素的标题属性
a.item(num) 返回节点列表中位于指定下标的节点
a.length 返回节点列表中的节点数
a.innerHTML 获取或者设置对象内的HTML
a.innerText 获取或者设置对象内的文本
a.outerHTML 获取或者设置对象外的HTML
a.outerText 获取或者设置对象外的文本
a.value 获取或者设置表单元素的值
这篇文章主要介绍了JavaScript的文档对象。下一篇文章,我们继续介绍JavaScript,敬请期待!
当网页被加载时,浏览器会创建页面的文档对象模型(Document Object Model)。
HTML DOM 定义了用于 HTML 的一系列标准的对象,以及访问和处理 HTML 文档的标准方法。通过 DOM,你可以访问所有的 HTML 元素,连同它们所包含的文本和属性。
HTML DOM 模型被构造为对象的树:
//通过 id 查找 HTML 元素
var x=document.getElementById("intro");
//通过标签名查找 HTML 元素
var x=document.getElementById("main");
var y=x.getElementsByTagName("p");
//通过类名找到 HTML 元素
var x=document.getElementsByClassName("intro");
//改变 HTML 输出流
document.write(Date());
//绝对不要在文档加载完成之后使用,用btn点击事件执行 document.write()。这会覆盖该文档。
//改变 HTML 内容
document.getElementById(id).innerHTML=new HTML
//改变 HTML 属性
document.getElementById(id).attribute=new value
//改变 HTML 样式
document.getElementById("p2").style.color="blue";
document.getElementById("p2").style.fontFamily="Arial";
document.getElementById("p2").style.fontSize="larger";
<h1 id="id1">我的标题 1</h1>
<button type="button" onclick="document.getElementById('id1').style.color='red'">
点我!</button>
//对事件做出反应
<h1 onclick="this.innerHTML='Ooops!'">点击文本!</h1>
<script>
function changetext(id){
id.innerHTML="Ooops!";
}
</script>
</head>
<body>
<h1 onclick="changetext(this)">点击文本!</h1>
</body>
//HTML 事件属性
<body>
<p>点击按钮执行 <em>displayDate()</em> 函数.</p>
<button onclick="displayDate()">点我</button>
<script>
function displayDate()
{
document.getElementById("demo").innerHTML=Date();
}
</script>
<p id="demo"></p>
</body>
//使用 HTML DOM 来分配事件
document.getElementById("myBtn").onclick=function(){displayDate()};
//onchange 事件
<script>
function myFunction(){
var x=document.getElementById("fname");
x.value=x.value.toUpperCase();
}
</script>
</head>
<body>
输入你的名字: <input type="text" id="fname" onchange="myFunction()">
<p>当你离开输入框后,函数将被触发,将小写字母转为大写字母。</p>
</body>
//addEventListener() 方法
<body>
<p>该实例使用 addEventListener() 方法在按钮中添加点击事件。 </p>
<button id="myBtn">点我</button>
<p id="demo"></p>
<script>
document.getElementById("myBtn").addEventListener("click", displayDate);
function displayDate() {
document.getElementById("demo").innerHTML = Date();
}
</script>
</body>
//向原元素添加事件句柄
<body>
<p>该实例使用 addEventListener() 方法在按钮中添加点击事件。 </p>
<button id="myBtn">点我</button>
<script>
document.getElementById("myBtn").addEventListener("click", function(){
alert("Hello World!");
});
</script>
//向同一个元素中添加多个事件句柄
<body>
<p>该实例使用 addEventListener() 方法向同个按钮中添加两个点击事件。</p>
<button id="myBtn">点我</button>
<script>
var x = document.getElementById("myBtn");
x.addEventListener("click", myFunction);
x.addEventListener("click", someOtherFunction);
function myFunction() {
alert ("Hello World!")
}
function someOtherFunction() {
alert ("函数已执行!")
}
</script>
</body>
在文档对象模型 (DOM) 中,每个节点都是一个对象。DOM 节点有三个重要的属性,分别是:
创建新的 HTML 元素
<body>
<div id="div1">
<p id="p1">这是一个段落。</p>
<p id="p2">这是另一个段落。</p>
</div>
<script>
var para=document.createElement("p");
var node=document.createTextNode("这是一个新段落。");
para.appendChild(node);
var element=document.getElementById("div1");
element.appendChild(para);
</script>
删除已有的 HTML 元素
<body>
<div id="div1">
<p id="p1">这是一个段落。</p>
<p id="p2">这是另一个段落。</p>
</div>
<script>
var parent=document.getElementById("div1");
var child=document.getElementById("p1");
parent.removeChild(child);
</script>
</body>
以上内容整理于网络,如有侵权请联系删除。
TML 音频/视频 DOM 参考手册
HTML5 DOM 为 <audio> 和 <video> 元素提供了方法、属性和事件。
这些方法、属性和事件允许您使用 JavaScript 来操作 <audio> 和 <video> 元素。
HTML 音频/视频 方法
方法 | 描述 |
---|---|
addTextTrack() | 向音频/视频添加新的文本轨道。 |
canPlayType() | 检测浏览器是否能播放指定的音频/视频类型。 |
load() | 重新加载音频/视频元素。 |
play() | 开始播放音频/视频。 |
pause() | 暂停当前播放的音频/视频。 |
HTML 音频/视频属性
属性 | 描述 |
---|---|
audioTracks | 返回表示可用音频轨道的 AudioTrackList 对象。 |
autoplay | 设置或返回是否在加载完成后随即播放音频/视频。 |
buffered | 返回表示音频/视频已缓冲部分的 TimeRanges 对象。 |
controller | 返回表示音频/视频当前媒体控制器的 MediaController 对象。 |
controls | 设置或返回音频/视频是否显示控件(比如播放/暂停等)。 |
crossOrigin | 设置或返回音频/视频的 CORS 设置。 |
currentSrc | 返回当前音频/视频的 URL。 |
currentTime | 设置或返回音频/视频中的当前播放位置(以秒计)。 |
defaultMuted | 设置或返回音频/视频默认是否静音。 |
defaultPlaybackRate | 设置或返回音频/视频的默认播放速度。 |
duration | 返回当前音频/视频的长度(以秒计)。 |
ended | 返回音频/视频的播放是否已结束。 |
error | 返回表示音频/视频错误状态的 MediaError 对象。 |
loop | 设置或返回音频/视频是否应在结束时重新播放。 |
mediaGroup | 设置或返回音频/视频所属的组合(用于连接多个音频/视频元素)。 |
muted | 设置或返回音频/视频是否静音。 |
networkState | 返回音频/视频的当前网络状态。 |
paused | 设置或返回音频/视频是否暂停。 |
playbackRate | 设置或返回音频/视频播放的速度。 |
played | 返回表示音频/视频已播放部分的 TimeRanges 对象。 |
preload | 设置或返回音频/视频是否应该在页面加载后进行加载。 |
readyState | 返回音频/视频当前的就绪状态。 |
seekable | 返回表示音频/视频可寻址部分的 TimeRanges 对象。 |
seeking | 返回用户是否正在音频/视频中进行查找。 |
src | 设置或返回音频/视频元素的当前来源。 |
startDate | 返回表示当前时间偏移的 Date 对象。 |
textTracks | 返回表示可用文本轨道的 TextTrackList 对象。 |
videoTracks | 返回表示可用视频轨道的 VideoTrackList 对象。 |
volume | 设置或返回音频/视频的音量。 |
HTML 音频/视频事件
事件 | 描述 |
---|---|
abort | 当音频/视频的加载已放弃时触发。 |
canplay | 当浏览器可以开始播放音频/视频时触发。 |
canplaythrough | 当浏览器可在不因缓冲而停顿的情况下进行播放时触发。 |
durationchange | 当音频/视频的时长已更改时触发。 |
emptied | 当目前的播放列表为空时触发。 |
ended | 当目前的播放列表已结束时触发。 |
error | 当在音频/视频加载期间发生错误时触发。 |
loadeddata | 当浏览器已加载音频/视频的当前帧时触发。 |
loadedmetadata | 当浏览器已加载音频/视频的元数据时触发。 |
loadstart | 当浏览器开始查找音频/视频时触发。 |
pause | 当音频/视频已暂停时触发。 |
play | 当音频/视频已开始或不再暂停时触发。 |
playing | 当音频/视频在因缓冲而暂停或停止后已就绪时触发。 |
progress | 当浏览器正在下载音频/视频时触发。 |
ratechange | 当音频/视频的播放速度已更改时触发。 |
seeked | 当用户已移动/跳跃到音频/视频中的新位置时触发。 |
seeking | 当用户开始移动/跳跃到音频/视频中的新位置时触发。 |
stalled | 当浏览器尝试获取媒体数据,但数据不可用时触发。 |
suspend | 当浏览器刻意不获取媒体数据时触发。 |
timeupdate | 当目前的播放位置已更改时触发。 |
volumechange | 当音量已更改时触发。 |
waiting | 当视频由于需要缓冲下一帧而停止时触发。 |
如您还有不明白的可以在下面与我留言或是与我探讨QQ群308855039,我们一起飞!
*请认真填写需求信息,我们会在24小时内与您取得联系。