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

如何在AlpineJS中使用数组形式的x-ref?

解决AlpineJS中数组形式Ref返回undefined的问题

AlpineJS并不支持通过x-ref="link[0]"这种下标格式来创建ref数组,你遇到的undefined问题正是因为这个写法不符合Alpine的ref规则。正确的做法是给多个元素使用相同的ref名称,Alpine会自动将这些元素收集为一个数组。

修正后的代码

HTML部分

<section x-data="assistant" class="section-space section-space-top-40">
    <div class="container">
        <span x-ref="link">test</span>
        <span x-ref="link">test</span>
    </div>
</section>

Script部分

function assistant() {
    return {
        init() {
            // 此时this.$refs.link是包含两个span元素的数组
            console.log(this.$refs.link);
            // 可以通过下标访问单个元素
            this.$refs.link[0].textContent = "changed 0";
            this.$refs.link[1].textContent = "changed 1";
        },
    }    
}

为什么原写法无效

你原代码里的x-ref="link[0]"和x-ref="link[1]"会被Alpine识别为两个独立的ref键:'link[0]'和'link[1]',而非同一个ref下的数组元素。所以this.$refs.link自然返回undefined,如果此时打印this.$refs['link[0]']反而能拿到第一个span元素,但这不是创建ref数组的正确方式。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.25 12:53:31