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

jQuery实现点击按钮仅操作所在div内同class元素的显示隐藏问题

问题原因

你原来的代码直接使用$(".old")、$(".older")这种全局选择器,会匹配页面上所有对应类名的元素,所以点击任意按钮会修改所有模块的数值展示。

解决方法

只需要在点击事件触发时,先定位到当前按钮所属的linePrice容器,再限定在这个容器内查找要操作的元素即可,修改后的JS代码如下:

$(function() {
    // 初始化隐藏所有older元素,原有逻辑无需修改
    $(".older").hide();

    $(".ofertas").on('click', function () {
        // 查找当前点击按钮所属的独立linePrice模块
        const $currentContainer = $(this).closest('.linePrice');
        // 仅在当前模块内操作对应元素
        $currentContainer.find(".old").hide();
        $currentContainer.find(".older").show();
        // 可选扩展:同步切换按钮选中样式
        $currentContainer.find('.offersList li').removeClass('select');
        $(this).addClass('select');
    });

    $(".desconto").on('click', function () {
        const $currentContainer = $(this).closest('.linePrice');
        $currentContainer.find(".old").show();
        $currentContainer.find(".older").hide();
        // 可选扩展:同步切换按钮选中样式
        $currentContainer.find('.offersList li').removeClass('select');
        $(this).addClass('select');
    });
});

核心方法说明

  • closest(选择器):从当前触发事件的元素开始向上遍历DOM树,返回第一个匹配选择器的祖先元素,这里用来定位每个独立的价格模块
  • find(选择器):仅在当前元素的后代节点中查找匹配元素,不会影响其他模块的同类名元素

你的原有CSS和HTML代码无需修改,替换JS逻辑即可实现需求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 17:15:02