Element简介

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

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

Element 对象中的属性

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

属性

描述

element.accessKey

设置或返回一个访问单选按钮的快捷键

element.attributes

返回一个元素的属性数组

element.childNodes

返回元素的一个子节点的数组

element.children

返回元素中子元素的集合

element.classList

返回元素中类名组成的对象

element.className

设置或返回元素的 class 属性

element.clientHeight

返回内容的可视高度(不包括边框,边距或滚动条)

element.clientWidth

返回内容的可视宽度(不包括边框,边距或滚动条)

element.contentEditable

设置或返回元素的内容是否可编辑

element.dir

设置或返回一个元素中的文本方向

element.firstChild

返回元素中的第一个子节点

element.id

设置或者返回元素的 id

element.innerHTML

设置或者返回元素的内容

element.isContentEditable

返回元素内容是否可编辑,如果可编辑则返回 true,否则返回 false

element.lang

设置或者返回一个元素的语言

element.lastChild

返回元素的最后一个子元素

element.namespaceURI

返回命名空间的 URI

element.nextSibling

返回指定元素之后的兄弟元素,两个元素在 DOM 树中位于同一层级(包括文本节点、注释节点)

element.nextElementSibling

返回指定元素之后的兄弟元素,两个元素在 DOM 树中位于同一层级(不包括文本节点、注释节点)

element.nodeName

返回元素名称(大写)

element.nodeType

返回元素的节点类型

element.nodeValue

返回元素的节点值

element.offsetHeight

返回元素的高度,包括边框和内边距,但不包括外边距

element.offsetWidth

返回元素的宽度,包括边框和内边距,但不包括外边距

element.offsetLeft

返回元素在水平方向的偏移量

element.offsetParent

返回距离该元素最近的进行过定位的父元素

element.offsetTop

返回元素在垂直方向的偏移量

element.ownerDocument

返回元素的根元素(文档对象)

element.parentNode

返回元素的父节点

element.previousSibling

返回元素之前的兄弟元素,两个元素在 DOM 树中位于同一层级(包括文本节点、注释节点)

element.previousElementSibling

返回元素之前的兄弟元素,两个元素在 DOM 树中位于同一层级(不包括文本节点、注释节点)

element.scrollHeight

返回元素的完整高度(包括被滚动条隐蔽的部分)

element.scrollLeft

设置或返回元素滚动条距离元素左侧的距离

element.scrollTop

设置或返回元素滚动条距离元素上方的距离

element.scrollWidth

返回元素的完整宽度(包括被滚动条隐蔽的部分)

element.style

设置或返回元素的样式属性

element.tabIndex

设置或返回元素的标签顺序

element.tagName

以字符的形式返回元素的名称(大写)

element.textContent

设置或返回某个元素以及其中的文本内容

element.title

设置或返回元素的 title 属性

element.length

返回对象的长度

示例

<body>
	    <div style="height:300px; width: 300px; margin: auto;" id="hello" class="hell k">
	        <a href="www.baidu.com">
	            <h3>静夜思</h3>
	        </a>
	        <p><span>床前明月光,</span><span>疑是地上霜.</span></p>
	        <p><span>举头望明月,</span><span>低头思故乡.</span></p>
	    </div>
	
	    <script>
	        var div = document.getElementsByTagName("div")[0];
	        var a = document.getElementsByTagName("a")[0];
	        //设置或返回快捷键,accessKey=r ,当键盘上按下alt+r  视为单击了该元素
	        console.log(a.accessKey = 'r');//给a标签设置快捷键r
	        console.log(div.attributes);//返回div的属性数组
	        console.log(div.childNodes);//返回div的所有子节点
	        console.log(div.children);//返回div的所有子元素
	        console.log(div.classList);//返回div的class组成的数组
	        console.log(div.className);//以字符串的形式返回div的所有类
	        console.log(div.clientHeight);//返回div的可视高度
	        console.log(div.clientWidth);//返回div的可视宽度
	        console.log(div.contentEditable);//返回div的内容是否可编辑
	        console.log(div.dir);
	        console.log(div.firstChild);//返回div的第一个子节点
	        console.log(div.id);//返回div的id;
	        console.log(div.innerHTML);//返回div的内容
	        console.log(div.isContentEditable);// | 返回元素内容是否可编辑,如果可编辑则返回 true,否则div返回 false
	        console.log(div.lang);// | 设置或者返回一个元素的语言
	        console.log(div.lastChild);//| 返回元素的最后一个子元素
	        console.log(div.namespaceURI);// | 返回命名空间的 URI
	        console.log(div.nextSibling);//| 返回指定元素之后的兄弟元素,两个元素在 DOM 树中位于同一层级(包括文本节点、注释节点)
	        console.log(div.nextElementSibling);// | 返回指定元素之后的兄弟元素,两个元素在 DOM 树中位于同一层级(不包括文本节点、注释节点)
	        console.log(div.nodeName);// | 返回元素名称(大写)
	        console.log(div.nodeType);// | 返回元素的节点类型
	        console.log(div.nodeValue);// | 返回元素的节点值
	        console.log(div.offsetHeight);// | 返回元素的高度,包括边框和内边距,但不包括外边距
	        console.log(div.offsetWidth);// | 返回元素的宽度,包括边框和内边距,但不包括外边距
	        console.log(div.offsetLeft);// | 返回元素在水平方向的偏移量
	        console.log(div.offsetParent);//| 返回距离该元素最近的进行过定位的父元素
	        console.log(div.offsetTop);//| 返回元素在垂直方向的偏移量
	        console.log(div.ownerDocument);// | 返回元素的根元素(文档对象)
	        console.log(div.parentNode);//| 返回元素的父节点
	        console.log(div.previousSibling);// | 返回元素之前的兄弟元素,两个元素在 DOM 树中位于同一层级(包括文本节点、注释节点)
	        console.log(div.previousElementSibling);// | 返回元素之前的兄弟元素,两个元素在 DOM 树中位于同一层级(不包括文本节点、注释节点)
	        console.log(div.scrollHeight);// | 返回元素的完整高度(包括被滚动条隐蔽的部分)
	        console.log(div.scrollLeft);// | 设置或返回元素滚动条距离元素左侧的距离
	        console.log(div.scrollTop);// | 设置或返回元素滚动条距离元素上方的距离
	        console.log(div.scrollWidth);// | 返回元素的完整宽度(包括被滚动条隐蔽的部分)
	        console.log(div.style);// | 设置或返回元素的样式属性
	        console.log(div.tabIndex);//| 设置或返回元素的标签顺序
	        console.log(div.tagName);//| 以字符的形式返回元素的名称(大写)
	        console.log(div.textContent);//| 设置或返回某个元素以及其中的文本内容
	        console.log(div.title);// | 设置或返回元素的 title 属性
	        console.log(div.length);// | 返回对象的长度
	    </script>
	</body>

js 给Element添加style js element对象_js 给Element添加style


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.normalize()

合并相邻的文本节点,并删除空的文本节点

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>

js 给Element添加style js element对象_前端_02