我如何才能将类添加到上面的第一个div?

时间:2016-02-09 15:46:46

标签: javascript jquery

我知道我可以用不同的j来做,但在这种情况下它不是一个选项

jQuery(document).ready(function($){

  if($('.panel-default .panel-collapse').hasClass('in')) {
    $(this).prev('.panel-heading').addClass('show-in');
  }

});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="panel panel-default">
  <div class="panel-heading">

  </div>
  <div id="collapseOne" class="panel-collapse collapse 
                               in">
    <div class="panel-body">
      <ul>
        <li></li>
      </ul>
    </div>
  </div>
</div>

<div class="panel panel-default">
  <div class="panel-heading">

  </div>
  <div id="collapseOne" class="panel-collapse collapse 
                               in">
    <div class="panel-body">
      <ul>
        <li></li>
      </ul>
    </div>
  </div>
</div>
<div class="panel panel-default">
  <div class="panel-heading">

  </div>
  <div id="collapseOne" class="panel-collapse collapse in">
    <div class="panel-body">
      <ul>
        <li></li>
      </ul>
    </div>
  </div>
</div>

2 个答案:

答案 0 :(得分:1)

您可以使用CSS伪选择器:first-of-type来定位系列中的第一个元素

示例:

.panel-default:first-of-type {
  background:red;
}
<div class="panel panel-default">1</div>
<div class="panel panel-default">2</div>
<div class="panel panel-default">3</div>
<div class="panel panel-default">4</div>
<div class="panel panel-default">5</div>

答案 1 :(得分:0)

这必须因为this变量不存在。由于此功能已准备就绪,请使用以下内容。

jQuery(document).ready(function($){
    $('.panel-default .panel-collapse.in')
         .prev('.panel-heading')
         .addClass('show-in');
});