原生javascript获取元素的几种方法

说明:日常开发中,我们常常遇到需要获取DOM对象,对对象元素进行修改情况,一般就会从Id、class、标签等去获取,下面就介绍几种方法,基本涵盖了所有的获取方法

方法简介:
1、通过ID获取(getElementById)
2、通过name属性(getElementsByName)
3、通过标签名(getElementsByTagName)
4、通过类名(getElementsByClassName)
5、通过CSS选择器获取(querySelector、querySelectorAll)


具体说明:
1、通过ID获取;
js代码:

var domById  = document.getElementById('id');

html元素:

<div id = 'id'></div>

注意
1)、如果没有指定 ID 的元素返回 null;
2)、如果存在多个指定 ID 的元素则返回第一个;
3)、该方法是document级别的,并且只能在当前document中查找,无法跨document


2、通过name属性获取;
js代码:

var domByName = document.getElementsByName('name');

html元素

<div name = 'name'></div>

注意
1)、因为一个document中的 name 属性可能不唯一(如 HTML 表单中的单选按钮通常具有相同的 name 属性),所以getElementsByName() 方法返回的是元素的数组,而不是一个元素;
2)、该方法与getElementById一样是document级别的,并且只能在当前document中查找,无法跨document。


3、通过标签名获取;
js代码:

//document级别
var domByTagName = document.getElementsByTagName('div');
//元素(element)级别
var domById = document.getElementById('id');
var domByTagName = domById.getElementsByTagName('span');

html代码:

<!--document级别-->
<div></div>
<!--element级别-->
<div id = 'id'>
	<span></span>
	<span></span>
</div>

注意
1)、document中有很多标签,一般情况下,标签都不会是唯一的,所以该方法的返回对象是一个集合;
2)、参数值 “*” 返回document中的所有元素;
3)、该方法可以是document级别,也可以是element级别,可以缩小范围,精准获取元素。


4、通过类名获取;
js代码:

//document级别
var domByClassName = document.getElementsByClassName('className');
//元素(element)级别
var domById = document.getElementById('id');
var domByClassName = domById.getElementsByClassName('className');

html代码:

<!--document级别-->
<div></div>
<!--element级别-->
<div id = 'id'>
	<span class = 'className'></span>
	<span class = 'className'></span>
</div>

注意
1)、document中有很多class同名的元素,所以该方法的返回值是一个集合;
2)、该方法可以是document级别,也可以是element级别,可以缩小范围,精准获取元素。


5、通过CSS选择器获取;
js代码:

//取得 body 元素
var body = document.querySelector("body"); 
//取得 ID 为"myDiv"的元素
var myDiv = document.querySelector("#myDiv"); 
//取得类为"selected"的第一个元素
var selected = document.querySelector(".selected"); 
//取得类为"selected"的全部元素
var selecteds = document.querySelectorAll(".selected"); 

html代码:

<body>
	<div id = 'myDiv'></div>
	<div class='selected'></div>
	<div class='selected'></div>
</body>

注意
1)、CSS 选择符可以简单也可以复杂,视情况而定,如果传入了不被支持的选择符,querySelector()、querySelectorAll()会抛出错误;
2)、如果没有找到匹配的元素,返回值就是空的;
3)、该方法可以是document级别,也可以是element级别,可以缩小范围,精准获取元素。


小结:
以上仅介绍了用法和一些注意事项,具体更深入的知识点,需要去了解其原理(比如CSS选择符之类的)。

参考资料:
1、 w3school
2、JavaScript高级程序设计(第3版)

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 获取元素中数据的高度可以使用JavaScript中的offsetHeight属性来实现。这个属性可以获取一个元素的高度,包括其边框、内边距和实际内容的高度。示例代码如下: ```javascript var element = document.getElementById("yourElementId"); var height = element.offsetHeight; ``` 其中,"yourElementId"是你想要获取高度的元素的id。通过这段代码,你就可以获取到该元素的高度了。 ### 回答2: 要获取元素中数据的高度,可以通过以下几种方法: 1. 使用JavaScript的offsetHeight属性:可以通过document.getElementById方法获取到对应元素的DOM对象,然后使用offsetHeight属性来获取元素的高度。该属性返回元素的可见高度,包括边框、内边距和滚动条(如果有)。 2. 使用JavaScript的clientHeight属性:类似于offsetHeight属性,可以通过document.getElementById方法获取元素的DOM对象,然后使用clientHeight属性来获取元素的高度。不同之处在于,clientHeight属性返回的是元素的可见高度,不包括边框和滚动条的高度。 3. 使用JavaScript的getBoundingClientRect方法:该方法返回一个DOMRect对象,包含了元素的位置和大小信息。可以通过document.getElementById方法获取元素的DOM对象,然后使用getBoundingClientRect方法获取元素的边界信息,包括高度。 4. 使用jQuery库:如果项目中使用了jQuery库,可以使用其提供的height方法获取元素的高度。通过选择器选中对应的元素,然后使用height方法获取其高度。 总结起来,获取元素中数据的高度可以通过原生JavaScript的offsetHeight、clientHeight和getBoundingClientRect方法,或者使用jQuery的height方法来实现。根据实际情况选择合适的方式即可。 ### 回答3: 获取元素中数据的高度,可以通过以下方法实现: 1. 使用JavaScript获取元素的高度属性:通过document.getElementById()、document.getElementsByClassName()、document.getElementsByTagName()等方法获取到对应的元素节点,然后使用元素节点的height属性来获取元素的高度。 2. 使用JavaScript的样式属性获取元素的高度:通过元素节点的style.height属性获取元素的内联样式中定义的高度,例如element.style.height。 3. 使用JavaScript的offsetHeight属性获取元素的高度:通过元素节点的offsetHeight属性获取元素的总高度,包括内容、内边距和边框。 4. 使用window.getComputedStyle()方法获取元素的计算样式:通过该方法可以获取元素的计算样式对象,然后通过计算样式对象的height属性获取元素的高度。 总之,获取元素中数据的高度可以通过JavaScript的属性、方法和样式来实现,具体使用哪种方法取决于具体的需求和情况。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值