Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/452.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 尝试比较不同元素的类_Javascript - Fatal编程技术网

Javascript 尝试比较不同元素的类

Javascript 尝试比较不同元素的类,javascript,Javascript,我正在寻找一种方法来检查一个元素中的类是否与另一个元素中的类匹配。我已尝试使用以下代码: 使用dataset似乎是可行的,但是,我希望探索通过纯Javascript实现这一点的可能性。有效的一行被注释掉(var matches=first.dataset.name==second.dataset.name;),而我难以使用的一行是(var matches=first.classList==second.classList;) javascript: //check for 2 matching

我正在寻找一种方法来检查一个元素中的类是否与另一个元素中的类匹配。我已尝试使用以下代码:

使用dataset似乎是可行的,但是,我希望探索通过纯Javascript实现这一点的可能性。有效的一行被注释掉(var matches=first.dataset.name==second.dataset.name;),而我难以使用的一行是(var matches=first.classList==second.classList;)

javascript:

//check for 2 matching squares
function checkIfMatches() {

  //var matches = first.dataset.name === second.dataset.name;
  var matches = first.classList === second.classList;
  matches ? disable() : unflip();

}
html:

  • 谢谢你的帮助。如果需要更多详细信息,您可以进行评论。

    使用数组排列
    […classList]
    类列表
    设置为
    数组
    ,然后使用
    数组.prototype.each()
    检查是否每个成员都包含在另一个成员的
    类列表

    函数sameClassList({classList:x},{classList:y}){
    返回[…x]。每个(z=>y.contains(z))
    &&[…y].every(z=>x.contains(z));
    }
    console.log(sameClassList(a,b));//真的
    console.log(sameClassList(a,c));//假的
    console.log(sameClassList(b,c));//错误

    将注释考虑在内,这将独立于顺序进行解决。 稍微更改了示例,以便可以执行它

    //检查两个匹配的方块
    函数checkIfMatches(){
    var elements=document.getElementsByClassName('卡片')
    var first=elements[0]。getElementsByTagName('i')[0]
    var second=elements[1]。getElementsByTagName('i')[0]
    var matches=first.classList.length==second.classList.length
    first.classList.forEach(条目=>matches=matches&&second.classList.contains(条目))
    console.log(匹配项)
    //匹配?禁用():取消滑动();
    }
    checkIfMatches()

  • 类列表
    是一个对象,它在两个元素之间并不相同,。你可以试试
    classList.value
    。虽然一定要注意,如果您的类是
    class1 class2
    &
    class2 class1
    ,那么它仍然是假的,而您可能希望它是真的。
    <li class="card">
       <i class="pa pa-test"></i>
    </li>
    
    <li class="card">
       <i class="pa pa-test"></i>
    </li>