计算标题类之前和之后的所有Item类元素

时间:2013-12-06 14:37:17

标签: javascript jquery class jquery-selectors

嘿,我正在考虑解决问题的Jquery解决方案。下面你可以看到我在每个标题后都有跟随的项目,现在这很好。

<div class="header"></div>
<div class="item"></div>
<div class="item"></div>
<div class="item"></div>
<div class="item"></div>
<div class="header"></div>
<div class="item"></div>
<div class="item"></div>
<div class="item"></div>
<div class="item"></div>
<div class="header"></div>
<div class="item"></div>
<div class="item"></div>
<div class="item"></div>
<div class="item"></div>

但有时候没有物品。只是标题:

<div class="header"></div>
<div class="header"></div>
<div class="header"></div>
<div class="item"></div>

在这种情况下,我想检查每个标题后是否有任何项目。如果没有,则添加段落文本“不可用”,如下所示:

<div class="header"></div>
<p>Not Available</p>
<div class="header"></div>
<p>Not Available</p>
<div class="header"></div>
<div class="item"></div>

非常感谢您的帮助。

2 个答案:

答案 0 :(得分:2)

看看是否有效:

$('.header').filter(function(){
     return $(this).next().hasClass('header');
     // or return !$(this).next().hasClass('item');
}).after('<p>Not Available</p>')

答案 1 :(得分:0)

这是我的想法:   - 您可以添加类名组以包括标题类和项类,如下所示:

<div class="groups">
  <div class="header"></div>
  <div class="item"></div>
  <div class="item"></div>
  <div class="item"></div>
  <div class="item"></div>
</div>
<div class="groups">
....
</div>
....

现在你有很多小组。您需要做的是计算每个组并检查项目是否存在:

$('.groups').each(function(){
   if($(this).children('items').length > 0){
      // found items class
   }

   else{
      // not found any items class
      $(this).append('<p>Not Available</p>');
   }

});