Jquery .each()是否包含for循环?需要反复添加标题

Jquery .each()是否包含for循环?需要反复添加标题,jquery,function,iterator,iteration,each,Jquery,Function,Iterator,Iteration,Each,每个循环我都有一个问题,我正在努力学习。我有一个for循环,它通过一个设置的数字进行迭代,然后我想做的是通过我设置的每个图像设置一个标题 Jquery代码: for(i=0; i<numImages; i++) { var previewCaptions = $('span#tooltips'+(i+1)).text(); $("ul.selector").find('li').each(function(){ $(this).attr('title

每个循环我都有一个问题,我正在努力学习。我有一个for循环,它通过一个设置的数字进行迭代,然后我想做的是通过我设置的每个图像设置一个标题

Jquery代码:

for(i=0; i<numImages; i++) {

    var previewCaptions = $('span#tooltips'+(i+1)).text();
    $("ul.selector").find('li').each(function(){
           $(this).attr('title',previewCaptions);
    });
}

对于(i=0;i由于标题和图像是1:1,我将执行以下操作:

$("img").each(function(index){
  $(this).attr("title", $("span.tip").eq(index).text() );
});
<ul>
  <li><img src="src1" title="Caption 1"></li>
  <li><img src="src2" title="Caption 2"></li>
  <li><img src="src3" title="Caption 3"></li>
</ul>
这将循环浏览每个图像(应使此选择器更具体)。在每个循环中,将获取图像的索引(第一个图像的索引为1,第二个图像的索引为2,等等),并选择适当的跨度(第一个图像,第一个跨度;第二个图像,第二个跨度,等等)将其文本添加到图像的标题属性中

您甚至可以进一步简化它:

$("img").attr("title", function(index){
  return $("span.tip").eq(index).text();
});
其结果如下:

$("img").each(function(index){
  $(this).attr("title", $("span.tip").eq(index).text() );
});
<ul>
  <li><img src="src1" title="Caption 1"></li>
  <li><img src="src2" title="Caption 2"></li>
  <li><img src="src3" title="Caption 3"></li>
</ul>

在线演示::

由于标题和图像是1:1,我将执行以下操作:

$("img").each(function(index){
  $(this).attr("title", $("span.tip").eq(index).text() );
});
<ul>
  <li><img src="src1" title="Caption 1"></li>
  <li><img src="src2" title="Caption 2"></li>
  <li><img src="src3" title="Caption 3"></li>
</ul>
这将循环浏览每个图像(应使此选择器更具体)。在每个循环中,将获取图像的索引(第一个图像的索引为1,第二个图像的索引为2,等等),并选择适当的跨度(第一个图像,第一个跨度;第二个图像,第二个跨度,等等)将其文本添加到图像的标题属性中

您甚至可以进一步简化它:

$("img").attr("title", function(index){
  return $("span.tip").eq(index).text();
});
其结果如下:

$("img").each(function(index){
  $(this).attr("title", $("span.tip").eq(index).text() );
});
<ul>
  <li><img src="src1" title="Caption 1"></li>
  <li><img src="src2" title="Caption 2"></li>
  <li><img src="src3" title="Caption 3"></li>
</ul>

在线演示:

您正在为每个
  • 设置标题3次,最后一次(和保留的一次)是在设置为“标题3”时。

    您正在为每个
  • 设置标题3次,最后一次(和保留的一次)当它被设置为“Caption 3”时

    否,它不只是获取最后一个文本,而是获取每个文本,而且当您每次在所有图像上设置标题时,您将覆盖以前的值,并且所有图像都以最后一个文本结束

    each
    方法为回调方法提供索引,因此您可以使用该方法为每个图像获取正确的文本:

    $("ul").find('li').each(function(i){
      $(this).attr('title', $('#tooltips'+(i+1)).text());
    });
    

    不,它不仅获取最后一个文本,还获取每一个文本,而且当您每次在所有图像上设置标题时,您将覆盖上一个值,并且所有图像都以最后一个文本结束

    each
    方法为回调方法提供索引,因此您可以使用该方法为每个图像获取正确的文本:

    $("ul").find('li').each(function(i){
      $(this).attr('title', $('#tooltips'+(i+1)).text());
    });
    
    试一试

    试一试


    天才!谢谢!效果很好!你能解释一下eq()吗?谢谢you@andrewliu
    $.eq()
    测试索引或元素的位置。因此第二个
    span.tip
    的索引为2。基本上,我们说的是“如果我的循环在第一个图像上,给我第一个span。第二个图像,第二个span。”请看我更简单的加法,它使用隐式循环,使语法更清晰。genius!谢谢!效果非常好!您能解释eq()吗?谢谢you@andrewliu
    $.eq()
    测试索引或元素的位置。因此第二个
    span.tip
    的索引为2。基本上,我们是说“如果我的循环在第一个图像上,给我第一个span。第二个图像,第二个span。”请参阅我更简单的添加,它使用隐式循环,使语法更清晰。