如果DOM

时间:2017-04-26 05:57:16

标签: jquery

当存在特定的类组合时,我想给主体一个类。

让我们说标记看起来像这样:

<span class="target one"></div>
<span class="target two"></div>
<span class="target three"></div>
<span class="target four"></div>
<span class="target five"></div>

目标类将是需要定位的目标类。如果任何涉及三个第一类中任何一个的组合 - one twothree存在 - 给身体一个班级。

Exampel(仅显示目标元素的三个组合以进行可视化):

<span class="target one"></div>
<span class="target one"></div>

<span class="target one"></div>
<span class="target two"></div>

<span class="target three"></div>
<span class="target two"></div>

等等。

但是如果存在任何其他元素,则没有课程。这些是动态的,所以我不能用它们作为变量。

<span class="target one"></div>
<span class="target one"></div>
<span class="target four"></div>

这可能吗?

1 个答案:

答案 0 :(得分:0)

这可能就是你要找的东西。

var d = ["one", "two", "three"];
var t = [];
$('span.target').each(function(i) {
  t.push($(this).attr("class").replace("target ", ""));
  if (i == ($('span.target').length - 1)) {
    var l = true;
    for (i = 0; i < t.length; i++) {
      if ($.inArray(t[i], d) == -1)
      {
        l = false;
      }
    }
    if(l){
      $("body").addClass("AddMyClass")
    }
  }
})

console.log("The body has the class AddMyClass: " +$("body").hasClass("AddMyClass"))
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<span class="target one"></div>
<span class="target two"></div>
<span class="target three"></div>