Tao*_*Ben 5 javascript arrays class
我今天遇到了一个问题,我花了几个小时才知道它是什么,所以我有一个元素,这个元素有很多类:
<div id="myId" class="first second iwantthisone fourth"></div>
Run Code Online (Sandbox Code Playgroud)
我正在使用列表中的一个类将其作为其他函数中的参数传递,因此为了获取它,我正在这样做:
const myClass = document.getElementById('myId').classList[2];
Run Code Online (Sandbox Code Playgroud)
为什么我选择2?因为当我对 classList 执行 console.log 时,它给了我一个数组(不是常规数组),结果如下:
['first', 'second', 'iwantthisone', 'fourth']
Run Code Online (Sandbox Code Playgroud)
所以我以为我已经完成了,我将我的工作部署到服务器上,我去那里测试一切是否正常,但事实并非如此,这就是我在这里的原因,所以问题是数组中项目的顺序更改为这 :
['second', 'iwantthisone','first', 'fourth']
Run Code Online (Sandbox Code Playgroud)
所以我的旧代码工作时间更长,我需要这样做:
const myClass = document.getElementById('myId').classList[1];
Run Code Online (Sandbox Code Playgroud)
这是不切实际的,我需要使用数组过滤器之类的方法来获取类,但似乎我无法使用它,因为 classList 不是我之前提到的常规方法。
有什么解决办法吗?
任何帮助将非常感激。
只要使用 .array 从数组转换而来,就可以使用过滤器Array.from()。由于评论中的讨论,我怀疑这就是您正在寻找的内容,但仅从问题来看,这就是解决方案。
const myClassList = document.getElementById('myId').classList;
var classList = Array.from(myClassList).filter(word => word == "iwantthisone");
console.log(classList);
console.log(myClassList);Run Code Online (Sandbox Code Playgroud)
<div id="myId" class="first second iwantthisone fourth"></div>Run Code Online (Sandbox Code Playgroud)