1

我在完成一个包含大量内容的网站时遇到了问题。我们在内容中的所有图像上设置了一个灯箱。不小心在图像上设置了“灯箱”类,并且没有在图像周围创建链接。

所以我想我可以使用 jQuerys wrap() 函数在内容区域中的每个图像周围添加灯箱图像链接。可悲的是,它还包装了已经被锚(例如 PDF-Links)包围的图像并覆盖它们。

我怎么能告诉 jQuery 只包围内容中的图像,这些图像还不是锚标记的一部分?

我现在有以下内容:

<script type="text/javascript">
$(document).ready(function($){
$('article img').each(function(){
if ($('article img').hasClass('lightbox')){
$(this).removeAttr('class');
}
$(this).wrap('<a href="'+this.src.replace("http://www.mydomain.com","")+'" class="lightbox" rel="group1"></a>');
});
$('.lightbox').lightbox();
});
</script>

因此,我从图像中删除了灯箱类,并在每个图像周围添加了一个与图像具有相同 src 的锚点(没有缩略图)。

4

2 回答 2

2

LIVE DEMO

$('article img').each(function(){
  if( this.parentNode.tagName != 'A' ){
      $(this).removeClass('lightbox')
             .wrap('<a href="'+this.src.replace("http://www.mydomain.com","")+'" class="lightbox" rel="group1"></a>');
  }
});
于 2013-03-07T10:12:56.897 回答
0

更改您的选择器

$('article>img').each(function(){
于 2013-03-07T10:10:27.857 回答