我有一个数据库结果列表,每个结果都标记有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>
非常感谢任何帮助。
答案 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(',');