仅为可见元素插入计数

时间:2016-04-20 16:12:01

标签: javascript jquery html css

我有五个div其中一些display:block和其他display:none,它会动态变化。 我试图为可见元素添加带有编号的标题。 例如,如果我有两个可见元素,我应该有" seance 1"对于第一个和#34; seance 2"对于第二个,但实际上我有" seance 2"对彼此而言。这是我的代码:



$('#save').click(function() {
  var countVisible = $('.panel-title:visible').length;
  $('.panel-title').filter(':visible').each( function () {
    for (i=0; i<countVisible; i++){
      $(this).text('seance'+(i+1));
    }
  });
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

<div class="panel" style="display:none;" id="seance1">
  <h4 class="panel-title"></h4>
</div>
<div class="panel" style="display:block;" id="seance2">
  <h4 class="panel-title">text text</h4>
</div>
<div class="panel" style="display:none;" id="seance3">
  <h4 class="panel-title"></h4>
</div>
<div class="panel" style="display:none;" id="seance4">
  <h4 class="panel-title"></h4>
</div>
<div class="panel" style="display:block;" id="seance5">
  <h4 class="panel-title">text text</h4>
</div>
<button id="save">save</button>
&#13;
&#13;
&#13;

3 个答案:

答案 0 :(得分:5)

不要添加for循环。 jquery每个都足够了

$('#save').click(function() {
    $('.panel-title').filter(':visible').each( function (i) {
      $(this).text('seance'+(i+1));
    });
  });

小提琴 - https://jsfiddle.net/fkbqdepo/

答案 1 :(得分:0)

如果我正确理解你的问题,那应该是这样的

$('#save').click(function() {
  $('.panel-title:visible').each(function(index) {
      $(this).text('seance'+(index+1));
  });
});

答案 2 :(得分:0)

 $('#save').click(function() {
  $('.panel-title:visible').each( function (i) {
    $(this).text('seance '+(i+1) );
  });
});