javascript - jQuery 或 JS - 如果父级不是 <a> 如何包装图像?

标签 javascript jquery

我正在努力让它发挥作用。 我需要将不可“点击”的图像包装在 div 内。

作为 a 的子级的图像不应被换行。

我做了以下事情:

if ($(window).width() > 960) {
  if (!$("img").parent().is("a")) {
    $("img").wrap('<div class="clickable_image"></div>');
  }
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

<p>
  <img class="alignnone wp-image-60001 size-full" src="http://placekitten.com/g/200/300" alt="yyyyy" width="1400" height="1686">
</p>

<p>
  <a href="https://google.com" target="_blank">
    <img class="alignnone wp-image-60003 size-full" src="http://placekitten.com/g/500/300" alt="xxxx" width="1500" height="350">
  </a>
</p>

但是我犯了一些错误,因为它没有包装任何图像。如果我删除 !,它就会包裹两个图像。仅应包裹不在 a 内的图像。我如何实现这一目标?

最佳答案

您可以使用后代选择器仅包装 p 子级的 img 元素:

if ($(window).width() > 960) {
  $('p > img').wrap('<div class="clickable_image" />');
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<p>
  <img class="alignnone wp-image-60001 size-full" src="http://placekitten.com/g/200/300" alt="yyyyy" width="1400" height="1686">
</p>
<p>
  <a href="https://google.com" target="_blank">
    <img class="alignnone wp-image-60003 size-full" src="http://placekitten.com/g/500/300" alt="xxxx" width="1500" height="350">
  </a>
</p>

关于javascript - jQuery 或 JS - 如果父级不是 <a> 如何包装图像?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63244194/

相关文章:

javascript - jQuery 可选列表作为日历

javascript - 如何在 javascript 中从 PHP 调用函数,Ajax 不返回任何内容

php - 快速Flash弹出安装

javascript - Object.defineProperty() 和 Object.defineProperties() 之间的性能差异

javascript - "ESLint no-loop-func rule"回调中需要循环变量怎么办

javascript - 如何在 ReactJS 中的 Switch 语句中包含组合函数的结果

javascript - Jquery 在滚动时触发动画一次

javascript - 同步 AJAX(违背 promise )

javascript - 应用脚本 : filter out empty elements from array

javascript - 我在合并 HTML 和 JavaScript 时遇到问题