jQuery根据当前类添加一个类

时间:2015-09-01 23:47:48

标签: jquery class

我有这个脚本

var dot = $('<i class="fa fa-circle"/>'),
    addDot = $(".rating li").slice(2).prepend(dot);

var excelent = $(".rating li").hasClass("standard").addClass("good");

它应该:

1)添加到每个li(在第二个li之后)对象点 - 它现在正常工作。

2)基于当前班级给这个新的类别

例如,最后一个李应该有.good类。

我已在此处粘贴整个脚本http://codepen.io/marciapn/pen/medzwN

1 个答案:

答案 0 :(得分:4)

hasClass不会返回一个jQuery对象,您可以使用该对象调用其他jQuery方法。相反,它返回布尔

但是,您可以隐式在选择器本身中包含条件,如

var excelent = $(".rating li.standard").addClass("good");

上面的语句只会将good类添加到具有standard类的元素中,因为这些元素是首先选择的元素。

var dot = $('<i class="fa fa-circle"/>'),
  addDot = $(".rating li").slice(2).prepend(dot);

var excelent = $(".rating li.standard").addClass("good");
ul {
  border: 1px solid #3F434E;
  border-radius: 5px;
  box-sizing: border-box;
  margin-top: 0px;
  padding: 10px 20px;
  line-height: 1.8em;
  position: relative;
  font-weight: 600;
  list-style: none;
}
.price {
  position: absolute;
  right: 20px;
}
.good {
  color: #84e07c;
}
.bad {
  color: #e07ccd;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
<link rel="stylesheet" href="//maxcdn.bootstrapcdn.com/font-awesome/4.3.0/css/font-awesome.min.css">
<ul class="rating">
  <li>History</li>
  <li>Overdue <span class="price">Sum</span>
  </li>
  <li class="extension">1 <span class="price">5000 CZK</span>
  </li>
  <li class="extension">2 <span class="price">5000 CZK</span>
  </li>
  <li class="schedule">+45 <span class="price">5000 CZK</span>
  </li>
  <li class="incaso">+454 <span class="price">5000 CZK</span>
  </li>
  <li class="standard">-1 <span class="price">5000 CZK</span>
  </li>
</ul>