2012-02-20 2 views
1

У меня есть mega menu working, и теперь я хочу получить все те h3 теги, у которых нет детей ul после него.получить un-child элементы

это HTML того li, которые имеют детей с ним

<li id="megamenu-mlid-370" class="megamenu-slot megamenu-slot-0 odd half-1 leaf-0 first first"> 
    <h3 class="megamenu-slot-title"><a href="/kcompute/" class="active">IT Management Solutions</a></h3> 
    <ul class="megamenu-items "> 
     <li id="megamenu-mlid-373" class="megamenu-item megamenu-item-0 odd half-1 leaf-0 first first"><a href="/kcompute/" class="active">Web Portal</a></li> 
     <li id="megamenu-mlid-374" class="megamenu-item megamenu-item-1 even half-1 leaf-1 "><a href="/kcompute/" class="active">Document Management</a></li> 
     <li id="megamenu-mlid-381" class="megamenu-item megamenu-item-2 odd half-1 leaf-2 "><a href="/kcompute/" class="active">Content Management </a></li> 
     <li id="megamenu-mlid-382" class="megamenu-item megamenu-item-3 even half-1 leaf-3 "><a href="/kcompute/" class="active">Knowledge Management</a></li> 
     <li id="megamenu-mlid-383" class="megamenu-item megamenu-item-4 odd half-1 leaf-4 "><a href="/kcompute/" class="active">Trading and Brokerage</a></li> 
     <li id="megamenu-mlid-384" class="megamenu-item megamenu-item-5 even half-2 leaf-5 "><a href="/kcompute/" class="active">Enterprise Resource Planning</a></li> 
     <li id="megamenu-mlid-385" class="megamenu-item megamenu-item-6 odd half-2 leaf-6 "><a href="/kcompute/" class="active">Simulator Development </a></li> 
     <li id="megamenu-mlid-386" class="megamenu-item megamenu-item-7 even half-2 leaf-7 "><a href="/kcompute/" class="active">Data Management</a></li> 
     <li id="megamenu-mlid-387" class="megamenu-item megamenu-item-8 odd half-2 leaf-8 last last"><a href="/kcompute/" class="active">Telecommunication</a></li> 
    </ul> 
</li> 

и теперь это HTML этого литий, который не имеет детей ul

<li id="megamenu-mlid-419" class="megamenu-slot megamenu-slot-0 odd half-1 leaf-0 first first"> 
    <h3 class="megamenu-slot-title"><a href="/kcompute/" class="active">Jobs</a></h3> 
</li> 

В JavaScript У меня есть megaBins функция, которая возвращает все ul

Я хочу, чтобы функция jQuery dd a класс no-items, в котором нет детей.

С уважением

+0

Хотите функцию, которая генерирует HTML или что фильтровать свой DOM? – sinsedrix

ответ

2

Попробуйте это:

$("ul.megamenu > li").each(function() { 
    if ($(this).find("ul").length == 0) { 
     $(this).addClass("no-items"); 
    } 
}); 

Вы, скорее всего, придется изменить селектор ul.megamenu, чтобы соответствовать ul вашей megadropdown - я просто взял догадку на то, что было.

+0

спасибо. ваш код работал на меня. Мне не хватает моей логики за ваше время. И СПАСИБО ВСЕМ ЛЮДЯМ ВЫШЕ. С уважением –

0

вы можете написать пользовательскую функцию JQuery, а также.

jQuery.fn.checkChildren = function() { 
    var validChilds = 'li,h3' 
    $(this).each (function() { 
     if ($(this).find(validChilds).length == 0) { 
      $(this).addClass('no-items'); 
     } 
    }); 
} 

$(function() { 
    $('div#liWrapper').children('li').checkChildren(); 
}); 

Демо: http://jsfiddle.net/T6K6q/

Смежные вопросы