if element有className1 classFromArray prepend classFromArray

时间:2016-02-16 04:05:06

标签: javascript jquery

问题是我需要做一些事情:
if element有className1 classFromArray prepend classFromArray。

到目前为止,我得到了这个,但它预先匹配的数组中的所有类名,我希望它只包含它所拥有的类并匹配数组。

JSFiddle

<div class="title purple_grad">
  <p>mensaje</p>
</div>

<div class="title red_grad">
  <p>mensaje</p>
</div>

var cols = [
            'purple_grad',
            'red_grad',
            'green_grad',
            'blue_grad'
];

var e = $("div");
for(i=0; i < cols.length; i++) {
  (function(i) {
    if ( e.hasClass("title") && e.hasClass(cols[i]) ) {
      e.prepend(cols[i]);
  }
  })(i);
}

1 个答案:

答案 0 :(得分:3)

您需要过滤和添加文本,如

var cols = [
  'purple_grad',
  'red_grad',
  'green_grad',
  'blue_grad'
];

var e = $("div.title"); //the hard filter can be applied here
cols.forEach(function(key) {
  e.filter('.' + key).prepend(key); //prepend the text after applying the class filter
})
.purple_grad {
  color: purple;
}
.red_grad {
  color: red;
}
.green_grad {
  color: green;
}
.blue_grad {
  color: blue;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="title purple_grad">
  <p>mensaje</p>
</div>
<hr>
<div class="title red_grad">
  <p>mensaje</p>
</div>