PHP递归函数问题。

时间:2016-10-09 13:27:23

标签: php css recursion

我有一个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>

有谁能告诉我怎么办? 提前致谢。

1 个答案:

答案 0 :(得分:1)

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

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