jquery .before() 如果类不存在

标签 jquery html jquery-selectors

使用分页,我在第一页中有一个像这样的 div 结构:

<div class="ctema">...</div>
<hr />
<div class="ctema">...</div>
<hr />
<div class="ctema">...</div>
<hr />

但是使用 jquery 脚本通过 AJAX 获取内容...以下页面只有:

<div class="ctema">...</div>
<div class="ctema">...</div>
<div class="ctema">...</div>

我的目标是在每个带有 class="ctema"的 div 之间都有一个 HR 标签...我尝试过这个:

$('.ctematicas').before('<hr />');

但这不会检查 HR 标签是否已经存在,并且在第一页中进行 5 次动态重新加载后,我最终会连续获得 5 个 HR ...

如何检查 CTEMA 类之间是否存在 HR 标签,如果不存在则添加一个?

编辑:问题澄清。

最佳答案

你可以做到

$('.ctema').not('hr+.ctema').before('<hr />');

$('.ctema:not(hr+.ctema)').before('<hr />');

jQuery 的文档建议​​​​​​​首选第一种解决方案。

Demonstration

<小时/>

如果您真正想要的是在 div 之间有一个小时(而不是在第一个之前),那么解决方案就更简单了:

$('.ctema+.ctema').before('<hr />');​

Demonstration

关于jquery .before() 如果类不存在,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13066535/

相关文章:

javascript - 根据使用 Jquery 的部门选择部门

javascript - jQuery:点击时添加属性值

javascript - 如何从数组中获取每个值并与硬编码值进行比较?

javascript - 从background.js操作popup.html的DOM

javascript - 使用 CSS3 转换缩略图标题

html - 背景视频图层定位有什么问题?

css - 彼此相邻的 Div 用于导航

jquery - 如何在文档加载时使用 jquery 在选择框中选择特定项目

Jquery - 加载具有随机边距/位置的 div

jquery 使用数组值对元素进行排序