2016-10-09 117 views
3

我有一个PHP递归函数来显示我的类别与子,子子类别。PHP递归函数问题。

它看起来象下面这样:

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"; 
    } 
} 

在这里,我想添加一个CSS类为每个父<li>,如果它有一个子,子子类别。

我的HTML是这样的:

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

谁能告诉我,我该怎么办呢? 在此先感谢。

+0

考虑使用JavaScript来遍历所有'li'标签和计数'li'的家长人数在他们上面。 – SOFe

回答

1

这可能不能准确地解决您的问题(不使用PHP),但你可以考虑使用jQuery:

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