javascript – jQuery:如何检查两个元素是否具有相同的类

有没有办法检查两个元素是否具有相同的类名?我的代码看起来像这样……

<body class="foo bar cats">
<a href="#" class="foo">Link</a>
<a href="#" class="puppies">Link</a>

我想要做的是在foo链接中添加另一个类,如果它与正文中的类匹配.我如何检查链接中的某个类是否与jQuery中的类匹配?

解决方法:

我建议:

$('a').each(
    function() {
        var classes = this.classList;
        for (var i=0,len=classes.length; i<len; i++){
            if ($('body').hasClass(classes[i])){
                $(this).addClass('bodySharesClass');
            }
        }
    });​

JS Fiddle demo.

编辑试图解释Internet Explorer无法理解/使用/实现.classList:

if (!document.createElement().classList){
    var useAttr = true;
}

$('a').each(
    function(i) {
        var classes = [];
        if (!useAttr){            
            classes = this.classList;
        }
        else {
            classes = $(this).attr('class');
        }
        for (var i=0,len=classes.length; i<len; i++){
            if ($('body').hasClass(classes[i])){
                $(this).addClass('bodySharesClass');
            }
        }
    });

JS Fiddle demo.

编辑,因为它似乎我以前尝试,为IE帐户,失败了.叹.仍然!这种方法应该可行,虽然我无法测试它,因为我没有IE和Windows:

$('a').each(
    function(i) {
        var classes = this.className.split(/\s+/);
        for (var i=0,len=classes.length; i<len; i++){
            if ($('body').hasClass(classes[i])){
                $(this).addClass('bodySharesClass');
            }
        }
    });

JS Fiddle demo.

参考文献:

> classList.
> hasClass().

上一篇:好程序员web前端分享html中meta标签及用法详解


下一篇:javascript – 检测移动设备