有没有办法检查两个元素是否具有相同的类名?我的代码看起来像这样……
<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');
}
}
});
编辑试图解释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');
}
}
});
编辑,因为它似乎我以前尝试,为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');
}
}
});
参考文献:
> classList
.
> hasClass()
.