javascript - Jquery - 如果元素包含一个类,在元素之后添加 HTML

标签 javascript jquery html css wordpress

我有一个预订 form.booking-wrap,里面有 2 个元素,div#booking,然后是 div.quantity

<form class="booking-wrap"> 
    <div id="booking"></div>
    /* insert div#message IF div.quantity is present inside div.booking-wrap */ 
    <div class="quantity"></div>
</form>

div.quantity 仅在某些预订中动态显示。

我想要实现的是,如果 div.quantity 存在,那么我想插入一个额外的 html div#message,但是这个新的 div应该出现在 div#booking 之后和 div.quantity

之前

我正在尝试以下 jQuery:

if($('.booking-wrap:has(div.quantity)')){
  $('#booking' ) .after( '<div id="message">Message</div>');
}

但这似乎行不通。

然后我尝试了这个:

$('.booking-wrap:has(div.quantity)').append($('<div id="message">Message</div>'));

这有效,新的 div 出现了,但是它就在数量 div 的旁边。

如何让它在 #booking 之后但在 .quantity 之前显示?

最佳答案

任何选择器都会返回一个对象,您应该检查返回对象的length 属性。像 $('.booking-wrap:has(div.quantity)').length

不过,我更喜欢 $('.booking-wrap > div.quantity').length

if($('.booking-wrap > div.quantity').length){
  $('#booking').after('<div id="message">Message</div>');
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<form class="booking-wrap">
  <div id="booking">booking</div>
  <div class="quantity">quantity</div>
</form>

关于javascript - Jquery - 如果元素包含一个类,在元素之后添加 HTML,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58480143/

相关文章:

jquery - 在Jquery中以交替顺序合并两个数组

html - 无法为移动设备正确声明@media 屏幕

html - 如何创建包含行列的无序列表

javascript - 如何在ajax url中发送很长的数据?

javascript - 检查浏览器通知是否可用

javascript - 在输入字段和图标上触发 Pikaday 日期选择器脚本

javascript - jqGrid 子网格的 JSON 对象

jquery - 使用 CSS 动画 <image> svgs?

javascript - 使用函数调用调用 jquery 弹出窗口

javascript - getElementsByTagName 是跨所有浏览器的安全调用吗?