jQuery将img src设置为在一行中拥有rel属性

时间:2017-10-27 22:22:40

标签: jquery

我想在点击这样一个按钮后才开始加载所有图库图像:

<div class=".gallery-pictures">
    <img rel="image1url" />
    <img rel="image2url" />
    ...
</div>

$('.gallery-pictures img').attr( 'src', $(this).attr('rel') );

但是,显然$(this)不是图片,因此rel属性不是正确的。{1}}属性。因此,我想知道是否可以设置所有这些而不必使用:

$(selector + ' img').each(function(index, image)
{
    $(image).attr( 'src', $(image).attr('rel') );
});

2 个答案:

答案 0 :(得分:0)

大多数jQuery setter函数都接受一个函数作为参数。他们在每个选定的元素上调用函数,传递被设置为参数的旧值,将this设置为元素,并使用返回值作为新值。

$(select + ' img').attr('src', function() {
    return $(this).attr('rel');
});

这基本上是使用.each()的快捷方式。

答案 1 :(得分:-1)

如果您需要项目本身的上下文来计算值,请使用$.each(),在您的情况下,您需要执行每个项目的值更改。