• 微信号
  • 微信号
目录

javascript

您当前的位置:首页 > 我的笔记 > javascript>JS Element对象(元素对象)

JS Element对象(元素对象)

通过《文档对象模型》一节的学习我们知道,当网页加载时,浏览器就会自动创建当前页面的文档对象模型(DOM),并将文档的所有部分(例如元素、属性、文本等)组织成一个逻辑树结构(类似于族谱),逻辑树的每一个分支的终点称为一个节点,每个节点都包含一个对象,这个对象就是我们本节要介绍的 Element 对象。

使用 Document 对象中提供的方法(例如 getElementsByTagName()、getElementById()、getElementsByClassName() 等)可以得到 Element 对象,在 Element 对象中同样也提供了一系列方法和属性,来操作文档中的元素或者元素中的属性。

Element 对象中的属性

下表中列举了 JavaScript Element 对象中提供的属性及其描述:

Element 对象中的方法

下表中列举了 JavaScript Element 对象中提供的方法及其描述:

方法 描述
element.addEventListener() 为指定元素定义事件
element.appendChild() 为元素添加一个新的子元素
element.cloneNode() 克隆某个元素
element.compareDocumentPosition() 比较当前元素与指定元素在文档中的位置,返回值如下:
  • 1:表示两个元素没有关系,不属于同一文档;
  • 2:表示当前元素在指定元素之后;
  • 4:当前元素在指定元素之前;
  • 8:当前元素在指定元素之内;
  • 16:指定元素在当前元素之内;
  • 32:两个元素没有关系,或者它们是同一元素的两个属性。
element.focus() 使元素获得焦点
element.getAttribute() 通过属性名称获取指定元素的属性值
element.getAttributeNode() 通过属性名称获取指定元素得属性节点
element.getElementsByTagName() 通过标签名获取当前元素下的所有子元素的**
element.getElementsByClassName() 通过类名获取当前元素下的子元素的**
element.hasAttribute() 判断元素是否具有指定的属性,若存在则返回 true,不存在则返回 false
element.hasAttributes() 判断元素是否存在任何属性,若存在则返回 true,不存在则返回 false
element.hasChildNodes() 判断一个元素是否具有子元素,有则返回 true,没有则返回 false
element.hasFocus() 判断元素是否获得了焦点
element.insertBefore() 在已有子元素之前插入一个新的子元素
element.isDefaultNamespace() 如果指定 namespaceURI 是默认的则返回 true,否则返回 false。
element.isEqualNode() 检查两个元素是否相等
element.isSameNode() 检查当前元素与指定元素是否为同一元素
element.isSupported() 判断当前元素是否支持某个特性
element.nor**lize() 合并相邻的文本节点,并删除空的文本节点
element.querySelector() 根据 CSS 选择器,返回第一个匹配的元素
document.querySelectorAll() 根据 CSS 选择器,返回所有匹配的元素
element.removeAttribute() 从元素中删除指定的属性
element.removeAttributeNode() 从元素中删除指定的属性节点
element.removeChild() 删除一个子元素
element.removeEventListener() 移除由 addEventListener() 方法添加的事件
element.replaceChild() 替换一个子元素
element.setAttribute() 设置或者修改指定属性的值
element.setAttributeNode() 设置或者修改指定的属性节点
element.setUserData() 在元素中为指定键值关联对象
element.toString() 将元素转换成字符串
nodelist.item() 返回某个元素基于文档树的索引

示例代码如下:

<!DOCTYPE html> 
<html lang="en"> 
<head> 
<meta charset="UTF-8"> 
<title>JavaScript</title> 
</head> 
<body onload="accesskey()"> 
<a id="r" class="aaa bbb ccc" href="javascript:;">使用 Alt + r 访问该元素</a><br> 
<a id="g" href="javascript:;">使用 Alt + g 访问该元素</a> 
<script type="text/javascript"> 
function accesskey(){ 
document.getElementById('r').accessKey="r" 
document.getElementById('g').accessKey="g" 
} 
var ele = document.getElementById('r'); 
console.log(ele.attributes); 
// 输出:NamedNodeMap {0: id, 1: href, id: id, href: href, length: 2} 
console.log(document.body.childNodes); 
// 输出:NodeList(7) [text, a#r, br, text, a#g, text, script] 
console.log(ele.classList); 
// 输出:DOMTokenList(3) ["aaa", "bbb", "ccc", value: "aaa bbb ccc"] 
console.log(ele.className); 
// 输出:aaa bbb ccc 
console.log(ele.clientHeight); 
// 输出:DOMTokenList(3) ["aaa", "bbb", "ccc", value: "aaa bbb ccc"] 
console.log(ele.tagName); 
// 输出:A 
console.log(ele.compareDocumentPosition(document.getElementById('g'))); 
// 输出:4 
console.log(ele.getAttribute('href')); 
// 输出:javascript:; 
console.log(ele.getAttributeNode('href')); 
// 输出:href="javascript:;" 
</script> 
</body> 
</html>

运行结果如下图所示:

图1:Element 对象中方法和属性使用演示