1
4

2 回答 2

1

这很难看,但它应该作为您的第二个选择器:

$('img:not(a img)');
于 2012-09-11T20:26:43.977 回答
1

像这样的东西应该工作:

​$('#post img')​.each(function() {
    if ($(this).parent().is('a')) {
        $(this).parent('a')
               .wrap('<div class="imagewrap" />');
    }else{
        $(this).wrap('<div class="imagewrap" />');
    }
    $(this).after('<div class="overlay"></div>');
}​);​

遍历所有图像,<a>如果有父元素则包裹父元素,否则包裹图像元素,并<img>在两个实例中的标记后添加叠加层。

或者,如果您更喜欢将其包装在一个语句中:

$('#post img').map(function() {
        return $(this).parent('a').length?$(this).parent('a'):$(this);
    }).wrap('<div class="imagewrap" />').end()
      .after('<div class="overlay"></div>')
于 2012-09-11T20:35:17.227 回答