Jquery使用重复的类名定位页面上的所有div,而不提供特定的类

时间:2014-05-29 21:33:17

标签: jquery

我有一个关于rails应用程序的Jquery问题...我有以下代码(简化),其中类是动态生成的:

<div class="one"></div>
<div class="one"></div>
<div class="two"></div>
<div class="three"></div>
<div class="four"></div>
<div class="four"></div>

在上面的例子中,我需要找到两个带有“one”类的div和两个带有“4”类的div,以便将独特的样式应用于这四个div。

在实际代码中,有超过4个可能的类,这会产生我的问题(有更接近30-40个不同的类)。

可能的类集只会随着这个应用程序而增长和变化,并且jquery不能绑定到任何特定的类或类集......它需要考虑一组无限的类。 / p>

如果没有指定特定的类或类集,例如.one,.two,.three,.four等,我怎么能找到页面上与另一个div共享一个类的所有div,无论是什么那个班是什么?

2 个答案:

答案 0 :(得分:0)

非常重,基本上是@CBroe的意思:

$(function() {
    $("div[class]").each(function() {
        var num = $("."+this.className).length;
        if (num > 1) alert(this.className + " is duplicate!");
    });
});

如果你的元素有多个类,你需要在空格中分割它们并迭代它们。

答案 1 :(得分:0)

  

如何在页面上找到与另一个div共享类的所有div

这意味着你已经有了一个特定的div(例如:#someDiv),它有一些类,并且你想找到所有与#someDiv有共同的一个或多个类的div

我希望我能正确理解你的问题。

试试这个:

var classList = $('#someDiv').attr('class').split(/\s+/);
for(var i = 0; i < classList.length; i++) {
  classList[i] = '.' + classList[i];
}
var selector = classList.join(', ');
$(selector).css('color', '#FF0000');

最后一行基本上选择了与我们的初始div共享任何类的所有div。

我希望这就是你要找的东西。

干杯!