这篇文章将为大家详细讲解有关JS用getElementsByClassName获取HTML元素的方法,文章内容质量较高,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。
GetElementsByClassName()是一个方法,可以获取为其设置目标类名称的所有HTML元素,本篇文章来给大家介绍关于GetElementsByClassName()方法的具体使用。
例如,HTML元素的类名如下
<h2 class="sample">标题</h2> <p class="test">文本</p> <a class="test" href="#">链接</a>
它具有可以为多个HTML元素赋予相同类名的功能。
因此,通常在一个HTML文件中有许多相同的类名,使用getElementsByClassName(),我们可以使用任意类名提取所有HTML元素。
如何使用getElementsByClassName()
我们先来看一下基本的语法
通过使用字符串指定要提取到目标范围的类名来使用。
doccument.getElementsByClassName( 类名 );
可以通过将目标范围设置为document来指定整个HTML元素。
当然,也可以设置任意范围。(详情将在后面描述)
另请注意,返回值是一个非常类似于数组的HTML集合。
获取具有任意类名的所有元素的方法
首先假设有以下HTML。
<h2 class="sample">标题1</h2> <p class="test">文本1</p> <h3 class="sample">标题2</h3> <p class="test">文本2</p>
有两个类名sample和test
例如,要获取具有类名“test”的所有HTML元素,可以按如下方式编写。
var result = document.getElementsByClassName('test'); console.log(result[0]); console.log(result[1]);
执行结果
<p class="test">文本1</p> <p class="test">文本2</p>
如果在参数中将“test”指定为字符串,则可以获取包含该类名的所有HTML元素的集合。
之后,如果使用类似下标的数组输出,则可以获得HTML元素,如执行结果。
指定多个类的方法
例如,以下HTML
<h2 class="sample test">标题1</h2> <p class="test">文本1</p> <h3 class="sample test">标题2</h3> <p class="test">文本2</p>
在这个例子中,h2和h3要素被赋予了2个类名
即使在这种情况下,您也可以通过为参数提供多个类名来获取所有类。
var result = document.getElementsByClassName('sample test'); console.log(result[0]); console.log(result[1]);
执行结果
<h2 class="sample test">标题1</h2> <h3 class="sample test">标题2</h3>
GetElementsByClassName()的使用
指定document以外的根元素的方法
我们看看以下HTML元素
<h2 class="sample test">标题1</h2> <p class="test">文本1</p> <div id="wrap"> <h3 class="sample test">标题2</h3> <p class="test">文本2</p> </div>
在该示例中,使用div元素形成分层结构。
通过这样描述,例如可以仅以id属性值wrap内的HTML元素为对象。
指定元素范围搜索类的方法
如果像上面那样设置div元素的范围,请按如下所示进行编写。
var div = document.getElementById('wrap'); var result = div.getElementsByClassName('test sample'); console.log(result[0]);
执行结果
<h3 class="sample test">标题2</h3>
首先,准备getElementById()来获取div元素。
之后,以取得的div元素为对象来执行getElementsByClassName()。
从执行结果来看,只获得div元素内的h3元素。
以上就是JS用getElementsByClassName获取HTML元素的方法,看完之后是否有所收获呢?如果想了解更多相关内容,欢迎关注亿速云行业资讯,感谢各位的阅读。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。