jquery .before()如果类不存在

时间:2012-10-25 10:23:44

标签: 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>

我的目标是在每个div与class =“ctema”之间建立一个HR标签......我试过这个:

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

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

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

编辑:问题澄清。

2 个答案:

答案 0 :(得分:3)

你可以做到

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

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

jQuery的文档建议更喜欢第一种解决方案。

Demonstration


如果您真正想要的是在

div之间(而不是在第一个之前),那么解决方案就更简单了:

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

Demonstration

答案 1 :(得分:1)

  

如何检查CTEMA和add类之间是否存在HR标记   一个如果不在场?

不确定我是否会这样做,但我可能会这样做:

$('.ctema').filter(function() {
    return !$(this).next('hr').length
}).after('<hr>');

FIDDLE