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

如何在jQuery中仅修改指定卡片内.change类的CSS样式

解决方法

首先要注意一个关键问题:如果存在多个卡片,绝对不能给多个元素使用同一个ID(updateData),这违反HTML规范,会导致选择器仅匹配页面中第一个带该ID的元素。先把ID改为class:

修改后的HTML

<div class="card">
 <div class="card-body">
  <p class="change">Change one</p>
  <p class="change">Change two</p>
  <p class="change">Change three</p>
 </div>
 <div class="card-footer">
   <i class="updateData">change</i>
 </div>
</div>

方案一:用jQuery的closest()和find()方法(推荐)

closest('.card')可以直接定位到当前点击元素最近的父级.card容器,比多次调用parentElement更灵活可靠,即便后续DOM结构微调也不会失效。再通过find('.change')仅查找该容器内的目标元素:

jQuery($ => {
  $('.updateData').click(e => {
    // 找到当前点击元素所属的card容器
    const $card = $(e.target).closest('.card');
    // 只修改这个card里的.change元素
    $card.find('.change').css('display','none');
  });
});

方案二:原生DOM元素结合jQuery选择器

如果想保留原生的element变量,也可以把它作为上下文参数传给jQuery选择器,限定查找范围:

jQuery($ => {
  $('.updateData').click(e => {
    const element = e.target.parentElement.parentElement;
    // 第二个参数指定仅在当前card元素内查找.change
    $('.change', element).css('display','none');
  });
});

两种方案都能实现仅隐藏当前卡片内的.change元素,优先推荐第一种,因为closest()的鲁棒性更强,适配后续DOM结构调整的能力更好。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 20:31:34