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

Alpine.js多值条件判断(类inArray)实现问题求助

解决方案

问题出在数组包含判断的语法错误,Alpine.js基于JavaScript,需用Array.includes()方法检查数组是否包含指定值,而非PHP的in_array逻辑。

修改Livewire组件中label的:class绑定即可:

原错误代码:

:class="{{ $item->id }} in selected ? 'bg-green-100' : 'bg-white'"

替换为(若$item->id为数字类型):

:class="selected.includes({{ $item->id }}) ? 'bg-green-100' : 'bg-white'"

若$item->id是字符串类型(如UUID),需给ID添加引号:

:class="selected.includes('{{ $item->id }}') ? 'bg-green-100' : 'bg-white'"

修改后的完整label代码:

<label for="selected.{{ $item->id }}"
       :class="selected.includes({{ $item->id }}) ? 'bg-green-100' : 'bg-white'"
       class="p-2 cursor-pointer hover:bg-blue-100 flex justify-between items-center">

原理说明:

  • selected是通过@entangle与Livewire同步的数组变量
  • Array.includes()是JavaScript原生方法,用于判断数组是否包含指定元素,返回布尔值
  • 当checkbox选中时,对应ID会加入selected数组,includes()返回true,触发bg-green-100类;未选中时返回false,应用bg-white类

内容的提问来源于stack exchange,提问作者Raden Bagus

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.26 18:17:06