【问题标题】:Appending paragraphs to an image attribute in order? (1st to 1st, 2nd to 2nd ... nth to nth) JQUERY按顺序将段落附加到图像属性? (第1到第1,第2到第2 ...第n到第n)JQUERY
【发布时间】:2013-09-16 21:09:10
【问题描述】:

我已经对段落进行了划分,每个段落都有信息。我也有图片的划分。

我的目标是使用 jquery 将每个段落中的文本附加到每个图像中称为“数据描述”的属性。

所以第一段为第一张图片添加了“data-description”属性,第二段为第二张图片添加了“data-description”属性,依此类推……

例如,此代码将只针对第一个:

$('#galleria :first-child').attr('data-description', $('#descriptions :first-child').text());

..假设#galleria div 包含图像,而#descriptions div 包含文本。

我尝试使用一个每次都会增加的变量,或者按顺序应用于每个的类,或者数组,但我没有任何乐趣。

我希望这个解释有点道理!

如果有任何想法,我将不胜感激,谢谢。

【问题讨论】:

    标签: javascript jquery html arrays


    【解决方案1】:

    试试这个:

    $('#galleria img').each(function(i){
        $(this).attr('data-description', $('#descriptions p:eq('+i+')').text());
    });
    

    解释:

    我使用 $('#galleria img').each 为每个图像标签执行一个函数。名为“i”的变量等于列表中的当前元素索引。然后,我将第 i 个 p 标签检索到 #descriptions 中,并将其放入当前图像的 data-description 标签中。

    我希望这是有道理的。

    【讨论】:

    • 我只是稍微简化了代码。您实际上不需要额外的变量,您可以从每个函数接收索引。您只需将“i”参数添加到匿名函数定义中。
    【解决方案2】:

    试试这个

    $('#galleria img').each(function(k,v){
        $(this).prop('data-description', $('#descriptions p').eq(k)').html());
        i = i + 1;
    });
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-05-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多