Javascript 获取DOM中与给定正则表达式匹配的类集
我正在动态生成元素:Javascript 获取DOM中与给定正则表达式匹配的类集,javascript,collections,Javascript,Collections,我正在动态生成元素: <a class="gallery1" href="base64String"> <img src="base64StringThumbnail"> </a> 例如,如果我在DOM中有类为:gallery1、gallery2、gallery1、gallery3、gallery2的元素,我会得到: [gallery1,gallery2,gallery3]按任意顺序排列。 在C和java中,这对我来说很容易,但是我不知道如何在JS
<a class="gallery1" href="base64String">
<img src="base64StringThumbnail">
</a>
例如,如果我在DOM中有类为:gallery1、gallery2、gallery1、gallery3、gallery2的元素,我会得到:
[gallery1,gallery2,gallery3]
按任意顺序排列。
在C和java中,这对我来说很容易,但是我不知道如何在JS中实现这一点。< P>让我们考虑下面的代码,这些代码是所有的类,就像你所说的变量一样。
let allClasses = ['gallery1', 'gallery2', 'gallery1', 'gallery3', 'gallery2'];
现在只获取['gallery1','gallery2','gallery3']
现在这样做
让所有类=['gallery1','gallery2','gallery1','gallery3','gallery2'];
让resultClasses=Array.from(新集合(所有类));
console.log(resultlasses);//['gallery1','gallery2','gallery3']
您可以使用querySelectorAll()
将所有元素作为目标,并且属性以选择器开头。然后使用.map()
循环遍历它们,从元素中获取类。最后,使用和删除重复项
请尝试以下方法:
var galleryList=document.querySelectorAll(“[class^=“gallery”]”);
var res=[…新集合(Array.from(galleryList.map)(g=>g.getAttribute('class')))];
控制台日志(res)代码>
请参见此$([class^='gallery'])
??
let allClasses = ['gallery1', 'gallery2', 'gallery1', 'gallery3', 'gallery2'];