jQuery - 如何将属性rel添加到多个链接?

时间:2011-04-01 11:58:17

标签: jquery lightbox

到目前为止,这是我的代码:

$('#floorplans img').each(function() {
    $('#floorplans a').each(function() {
        $(this).attr('rel','lightbox'); 
    });
});

到目前为止它运作良好,但我也需要它为#gallery做同样的事情。是否有可能在不必为#gallery再次编写相同代码的情况下完成此操作?

谢谢!

4 个答案:

答案 0 :(得分:2)

是 - 使用multiple selector

答案 1 :(得分:2)

$('#floorplans img a, #gallery img a').attr('rel', 'lightbox');

不行吗?

更新:我有“IMG”和“A”回到前面,应该是“#Div”中包含“IMG”的所有“A”,如下所示:

$('#floorplans a:has(img), #gallery a:has(img)').attr('rel', 'lightbox')

答案 2 :(得分:1)

如果没有看到你的标记,这样的事情可能有用:

$('#floorplans img, #gallery img').each(function() {
    $('a').each(function() {
        $(this).attr('rel','lightbox'); 
    });
});

HTH

更新: 我仍然认为这不对, 你没有使用你在外循环中选择的元素,所以它是多余的。 而且我认为你因为它而多次设置rel attr。 我没有尝试过,但我认为你应该只使用一个循环,在那里选择带有图像的链接。

$('#floorplans a:has(img), #gallery a:has(img)').each(function() {
        $(this).attr('rel','lightbox'); 
});

答案 3 :(得分:0)

您可以定义功能并使用它,例如:

var addRel = function(selector) {
    $(selector).each(function() {
        $(this).attr('rel','lightbox'); 
    });
};

addRel('#floorplans a');
addRel('#gallery a');