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

JS仅输出首个data-prise属性值问题排查求助

问题原因
  • document.querySelector('.price')只会返回第一个匹配到的DOM元素,所以你定义的price变量只存了第一个卡片的data-prise值,循环里反复输出的都是这个固定值。
  • 循环条件写了i < 6,但你实际只有5个卡片,不过这不是核心问题,关键是没拿到所有目标元素。
修复后的JavaScript代码
const btn = document.querySelector('.sort')
// 获取所有带.price类的元素
const priceElements = document.querySelectorAll('.price');

btn.addEventListener('click', () => { 
    // 遍历每个价格元素,输出对应的data-prise值
    priceElements.forEach(element => {
        // 两种获取属性值的方式二选一即可
        const price = element.getAttribute('data-prise');
        // 或者用dataset语法:const price = element.dataset.prise;
        console.log(price);
    });
})
补充说明
  • document.querySelectorAll()会返回包含所有匹配元素的NodeList,用forEach()遍历比手动写for循环更简洁。
  • 用dataset访问data-*属性是更规范的写法,比如data-prise直接对应element.dataset.prise。

内容的提问来源于stack exchange,提问作者al.orl

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 05:50:37