循环遍历所有可用的css属性以获得计数?

时间:2013-11-12 19:57:07

标签: javascript php jquery

我有一个数据库结果列表,每个结果都标记有css属性以进行过滤。有些可能有很多标签,有些标签。

    <ul class="results">
      <li class="filterThis property propertysome property other propertyetc>
        <!— item info —> 
      </li>
      <!— next item —>
    </ul>

此行计算具有一个特定css属性的可见结果数(在本例中为“.property”)。

    var numProperty = $('.filterThis.property:visible').length

这会更新过滤器列表中的数字,这些过滤器会在加载结果后加载

    $(".whenReady label span.property”).html(numProperty);

如何将其扩展为遍历所有可用的css属性,如上所述计算它们,并按上述方式更新html?

每个()似乎都是要走的路,但我似乎无法得到结构或命名权,或者根本不能产生结果,或者一直带着名字,所以我可以分配html更新。

所有可能的属性都可用作php结果,因此可能是jQuery的json对象(或其他东西?),但我不知道如何采取后续步骤并获得所需的功能。 / p>

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:0)

难道你不能在后端解决这个问题吗?例如,跟踪可用的过滤器:

<?php
  $results = .... ;
  $filters = array();

  foreach($result in $results){
    // assuming each result has an array of filters
    $filters = array_merge($filters, $result['filter']);
  }

  $filters = array_unique($filters);
  $csFilters = implode(',',$filters);
?>

通过上面的示例,您有一个带有可用过滤器的逗号分隔字符串,然后您可以将其作为数据属性应用到结果列表中:

<ul class="results" data-filters="a,b,c,d">

现在你可以在jQuery中访问这些过滤器了:

$('.results').data('filters').split(',');