Select 与 jQuery 兄弟的特定类型的特定数量的项目

Select a specific number of items of a specific type which are brothers with jQuery

我希望将 class 添加到 p 中的图片,前提是 p 中的图片严格为 2 张(不是单独的 img 或超过 2 张),并带有 jQuery 选择器。

<div class="wysiwyg">
   <p>
      <img class="addHere"/>
      <img class="addHere"/>
   </p>
   <p>
     <img/>
   </p>
</div>

现在,我有这样的东西:

jQuery(".wysiwyg:has(p:nth-of-type(2)) img").addClass('MyClass');

问题是如果 p 中只有 1 个 img,它也会得到 class。你有想法吗?谢谢!

方法有很多种。一种可能是过滤它:

jQuery(".wysiwyg p").filter(function () {
    return $(this).find('img').length === 2;
}).find('img').addClass('MyClass');

或者:

jQuery(".wysiwyg p img").filter(function(){
    return $(this).siblings('img').length === 1;
}).addClass('MyClass');

或者使用下面的选择器(非常难读):

jQuery(".wysiwyg p:has(img:gt(0)):not(:has(img:gt(1))) img").addClass('MyClass');