jQuery动态div id与.each()不起作用

时间:2018-06-07 18:03:52

标签: javascript jquery

我用类

创建了5个div

$(document).ready(function(){
   var numSlide = $('.slide_text').length;
   var slideLoop;
   var numSlideTemp = 1;
   for(slideLoop=numSlideTemp;slideLoop<=numSlide;slideLoop++){
      $('.slide_text').attr('id', 'slide_text_' + slideLoop);
   }
   $('#slide_text_3').html('OK!');
});
<script src="https://code.jquery.com/jquery-1.10.2.js"></script>

<div class="slide_text">Slide 1</div>
<div class="slide_text">Slide 2</div>
<div class="slide_text">Slide 3</div>
<div class="slide_text">Slide 4</div>
<div class="slide_text">Slide 5</div>

我想为每个div添加attribut ID,但在运行此脚本后,所有ID都设置为 slide_text_5

我想要结果(id):

  
      
  • slide_text_1
  •   
  • slide_text_2
  •   
  • slide_text_3
  •   
  • slide_text_4
  •   
  • slide_text_5
  •   

在每个div。

我的剧本有什么问题吗?提前谢谢。

1 个答案:

答案 0 :(得分:2)

for (slideLoop=numSlideTemp;slideLoop<numSlide;slideLoop++){
   $('.slide_text').eq(slideLoop - 1).attr('id', 'slide_text_' + slideLoop);
}

使用eq(),因此您只需更改要更改的单个元素。否则你正在改变它们。

这也可以写成:

$('.slide_text').each(function(index, element){
    element.id = 'slide_text_'+ ( index + 1 );
});