如果图像父级没有某个类,则jQuery在div中选择图像

时间:2010-03-31 20:22:08

标签: jquery-selectors

Wordpress在带有.wp-caption类的div中用图片包装图像。 我正在寻找一种方法来选择没有这个div的图像,所以我可以将它们包装在不同的div中。 (在所有图像周围保持一致的边框)

<div class="blog-post-content"> 
 <div id="attachment_220" class="wp-caption alignleft" style="width: 310px">
  <a href="/somewhere/"><img class="size-medium wp-image-220" src="/path/to/image" alt="" width="300" height="280" /></a>
  <p class="wp-caption-text">Caption Text</p>
 </div>
 <p>This is the body of the post</p>
</div>

要测试我的选择器,我只是想添加一个绿色边框。一旦选择器工作,我就可以处理.wrap()。

我最有希望的尝试是:

$('.blog-post-content img').parent('div:not(".wp-caption")').css('border', '2px solid green');

......但没有运气。

3 个答案:

答案 0 :(得分:5)

这个怎么样:(未经测试)

$('.blog-post-content img').filter(function(){
    return !$(this).parents('div').hasClass('wp-caption');
}).css('border', '2px solid green');

答案 1 :(得分:0)

尝试:

$('.blog-post-content img').parent(':not("div.wp-caption")')

如果Matti对层次结构中的a元素说了什么,那么上面的内容就不行了。

答案 2 :(得分:0)

我知道很久以前就问过这个问题了,但我想建议如下:

$('.blog-post-content img').closest('div:not(".wp-caption")')

未经测试,但我认为这应该有效,并且比上面的答案更短。使用最接近意味着忽略a。