You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

JavaScript Isotope结合PHP动态输出商品时data-filter筛选失效求助

问题排查结果

问题出在PHP渲染商品元素的语法错误:你没有把数据库取出的item_brand字段值放到grid-item元素的class属性内,而是直接写在了class属性外面,导致item_brand的值变成了元素的独立无值属性,Isotope无法根据类名匹配筛选。

你当前的错误代码渲染后的元素结构如下(以item_brand值为samsung举例):

<div class="grid-item border border-warning " samsung >

这里samsung不属于元素类名,所以.samsung的筛选条件找不到对应元素,而全选规则*匹配所有元素,所以只有全选功能正常。

修复方法

修改PHP中grid-item元素的输出代码,把item_brand的输出放到class属性内部:

<!-- 修改前 -->
<div  class="grid-item border border-warning " <?php echo " {$row['item_brand']}";   ?> >

<!-- 修改后 -->
<div class="grid-item border border-warning <?php echo $row['item_brand']; ?>" >

修改后渲染的元素结构为:

<div class="grid-item border border-warning samsung" >

Isotope就能正常匹配类名完成筛选。

其他注意事项

  • 保证数据库item_brand字段的取值和按钮data-filter中的类名完全一致,类名匹配大小写敏感。
  • 可以把Isotope初始化代码放到$(document).ready()回调中,确保DOM完全加载后再初始化,避免漏识别商品元素。
  • 打开浏览器开发者工具查看元素属性,可以快速定位这类渲染错误。

内容的提问来源于stack exchange,提问作者Saher Ikram

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.03 18:15:00