2016-10-09 8 views
3

私は、サブ、サブ - サブカテゴリで私のカテゴリを表示するPHPの再帰的な関数を持っています。PHP再帰関数の問題。

ITSは以下のようになります。ここでは

function displayList(&$cats, $parent, $current=0, $level=0) { 
    if ($parent==0) { 
    foreach ($cats[$parent] as $id=>$nm) { 
     displayList($cats, $id, $current); 
    } 
    } 
    else { 
    echo "<ul>\n";   
    foreach ($cats[$parent] as $id=>$nm) { 
     $sel = $current==$id ? ' active' : '';   

     //$indent = str_repeat('&ndash; ', $level); 
     echo "<li><a href='' class='$sel'>$nm</a>\n"; 
     if (isset($cats[$id])) { 
      displayList($cats, $id, $current, $level+1); //increment level 
     } 
     echo '</li>'; 
    } 
    echo "</ul>\n"; 
    } 
} 

が、私はそれがサブサブサブカテゴリーがある場合は、各親<li>ためCSSクラスを追加します。誰もが、私はそれを行うことができる方法を教えてもらえます

<ul> 
    <li><a href="product_category.html">Party Balloons</a></li> 
    <li><a href="">Party Tableware</a></li> 
    <li class="parent"><a href="">Party Decorations</a> 
    <ul> 
    <li><a href="">Lorem ipsum dolor sit amet </a></li> 
    <li class="parent"><a href="">Conse ctetur adipisicing </a> 
     <ul> 
     <li><a href="">Dolore magna aliqua</a></li> 
     <li><a href="">Ut labore et </a></li> 
     </ul> 
    </li> 
    <li><a href="">Elit sed do eiusmod tempor</a></li> 
    <li><a href="">Incididunt ut labor</a></li> 
    </ul> 
    </li> 
    <li><a href="">Party Banners</a></li> 
</ul> 

私のHTMLは次のようなものでしょうか? ありがとうございます。

+0

はすべて 'li'タグを反復処理し、' li'親の数をカウントするためにJavaScriptを使用して考えてみましょうそれらの上。 – SOFe

答えて

1

これはおそらく(PHPを使用していない)正確にあなたの質問には対応していませんが、あなたはjQueryのを使用することを検討することができます

$("li").filter(function(){ 
    return $(this).find("li").length > 0; // counts children with <li> recursively 
}).addClass("has-sublist");