javascript - DIV 调节 - 检查 DIV 中是否存在 IMG

标签 javascript jquery html css wordpress

我的网站中有以下代码行:

HTML:

<div class="the-post-thumbnail">
    <p><img src="http://placehold.it/350x150/FF0000/FFFFFF?text=Automatic+Thumbnail" alt="" width="" height="" /></p>
</div>

<div class="post-body">
    <p><img src="http://placehold.it/350x150/00FF00/FFFFFF?text=Manual+Thumbnail" alt="" width="" height="" /></p>      
    <p>Paragraph</p>
    <p><img src="http://placehold.it/350x150/0000FF/FFFFFF?text=Body+Image" alt="" width="" height="" /></p>
</div>

JavaScript/jQuery:

var ele = $('.post-body p:has(img):first');

if ($('.the-post-thumbnail img').length) {
  ele.hide();
}

else {
  ele.show();
}

我想做的是:

  1. 检查 the-post-thumbnail 中是否图像div,如果是这样,则将手动缩略图隐藏在 post-body
  2. 检查 the-post-thumbnail 中是否没有图像div,如果是这样,则显示 post-body 中的手动缩略图

这部分有效,但是,我注意到,如果我从 post-body 中删除手动缩略图。 div,它也会删除段落标签后的第二个正文图像。

如何才能仅定位直接位于 post-body 内的手动缩略图div 是否正确,以便我可以实现上面的两个列表项,而无需添加其他类?

仅供引用:

这是由于将我的网站主题更换为其他主题所致。旧版本要求我在文章顶部手动放置每个帖子的缩略图,而新主题会自动为我完成此操作。这导致旧帖子出现重复的图像。

CodePen Example

最佳答案

<强> Working fiddle

只需更改 :first 选择器的位置即可完成工作,因为它将始终选择第一个 p 并检查它是否有图像:

var ele = $('.post-body p:first:has(img)');

希望这有帮助。

关于javascript - DIV 调节 - 检查 DIV 中是否存在 IMG,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33849709/

相关文章:

javascript - 使用相同的javascript函数来更改多个图像上传的预览

javascript - 每当我导航到不同的 Vue.js 路线时,我都会被发送到我导航到的 View 的底部,我无法弄清楚为什么

javascript - 如何在一个 View 中获取多个集合

javascript - 在某个点添加一个div

在浏览器中显示的 HTML 链接

javascript - 如何为 chrome 和 ie favicon(加载指示器)设置动画

jquery - 选择和更改列表项

javascript - Oembed 不呈现 javascript,仅用于 Twitter 的文本

javascript - Toggle 仅在一位家长中上课

html - 网页不是自动换行