[英]jQuery: How to check if two elements have the same class
有没有办法检查两个元素是否具有相同的类名? 我的代码看起来像这样......
<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小提琴演示 。
编辑试图解释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小提琴演示 。
编辑,因为它似乎我以前尝试,为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小提琴演示 。
参考文献:
classList
。 hasClass()
。 好吧,假设我理解正确,你可以这样做......
var link = $(".foo");//or select your link another way
var linkClass = link.attr("class");
if($("body").hasClass(linkClass)){
//link has matching class
link.addClass("newClass");
}
正如您所看到的,我使用了hasClass() JQuery函数来检查body选项卡是否具有匹配的类。
如果您的链接可能有多个类名,您可以这样做......
var link = $(".foo");//or select your link another way
var linkClass = link.attr("class");
var classList = linkClass.split(/\s+/);
var matchFound = false;
for(var i = 0; i < classList.length; i++){
if($("body").hasClass(classList[i])){
//link has matching class
matchFound = true;
}
}
if(matchFound){
link.addClass("newClass");
}
另外,如果你想同时处理所有链接,你可以将它们全部包装在JQuery each()中,并改变第一行,就像这样...
$("a").each(function(index){
var link = $(this);
//the rest of the above code here
});
$('a').hasClass('foo').addClass('whatever');
使用jquery hasClass()方法将引导您找到解决方案
这是一个建议,可能还有其他(更好):)
$(document).ready(function() {
var $foo = $('.foo'); // select the foo link
if ($(body).hasClass($foo.attr('class'))) {
$foo.addClass('anotherClass');
}
});
var body_classes =$('body').attr('class').split(/\s+/);
var foo_link = $('a.foo');
$.each(body_classes, function(index, item){
if (foo_link.hasClass(item)) {
foo_link.addClass('class_you_want_to_add');
return false;
}
});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.