我只需要选择链接中包含的图像,这样我就可以将rel =“lightbox”链接到链接。我尝试了2个循环,但它不起作用,因为它也将rel属性添加到普通链接(没有图像)。
这是jQuery:
$('#floorplans img').each(function() {
$('#floorplans a').each(function() {
$(this).attr('rel','lightbox[floorplans]');
});
});
谢谢。
答案 0 :(得分:6)
你不需要循环来做那个(而且,你的外部循环没用,因为你不以任何方式使用它的结果)。您可以使用选择器在链接中查找图像,然后使用closest
方法查找每个链接,然后您可以让attr
方法遍历结果并在所有链接上设置属性:
$('#floorplans a img').closest('a').attr('rel','lightbox[floorplans]');
答案 1 :(得分:3)
更好的解决方案可能是:
$('#floorplans a:has(img)').attr('rel', 'lightbox[floorplans]');
为什么它更好?
Guffa的解决方案将选择锚点内的所有图像到jQuery集合中(如果页面中有大量图像,这可能是一个很大的过度杀伤)。
我的解决方案只会选择指定的锚点,而不是图像。
答案 2 :(得分:1)
$(“a> #MyImage”)