2012-02-20 50 views
1

メガメニューを使用していますが、そのあとh3子どものいないタグulをすべて取得します。子供がいない要素を取得する

これはそれ

<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> 

で子供を持っているliのhtmlです、今これは私がmegaBinsを持っている子どもたちに、JavaScriptで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> 

を持っていないというのLi htmlですすべてを返す関数ul

私はjQuery関数をddは子どもがいないクラスno-itemsです。

よろしく

+0

はあなたがHTMLを生成するか、またはそれはあなたのDOMをフィルタリングする機能をしたいですか? – sinsedrix

答えて

2

これを試してみてください:

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

あなたは、ほとんどの場合、あなたのmegadropdownのulに一致するようにul.megamenuセレクターを変更する必要があります - 私はちょうどでしているものを推測しました。

+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/