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

如何使用jQuery实现勾选复选框时仅展示最新选中项对应图片

实现方案

你只需要调整change事件的处理逻辑,先批量隐藏所有关联图片,再控制当前选中项对应图片的显示即可,同时可以增加取消其他复选框勾选的逻辑,避免多选中状态和显示结果不一致的体验问题。

修改后代码

jQuery(document).ready(function( $ ){
  // 所有控制显示的图片如果统一加了公共类 decal-image 就用下面这行,没加的话替换为 $('[id^="decal_"]') 选中所有id以decal_开头的元素
  const $allDecalImages = $('.decal-image');
  const $decalCheckboxes = $('.decalcheckbox input[type=checkbox]');

  $decalCheckboxes.on("change",function() { 
    const currentCheckbox = $(this);
    const checkboxVal = currentCheckbox.val().toLowerCase();
    const checkboxIdSuffix = checkboxVal.replace(/ /g, "_");
    const $targetImg = $('#decal_'+ checkboxIdSuffix);

    if(currentCheckbox.is(':checked')) {
      // 先隐藏所有关联图片
      $allDecalImages.hide();
      // (可选优化)取消其他复选框的勾选,符合单选交互预期,不需要可以删掉下面这行
      $decalCheckboxes.not(currentCheckbox).prop('checked', false);
      // 显示当前选中项对应图片
      $targetImg.show();
    } else {
      // 取消勾选时隐藏对应图片
      $targetImg.hide();
    }
  }).change(); // 初始化触发一次
});

逻辑说明

  • 提前缓存所有关联图片和复选框的DOM对象,避免重复查询DOM提升性能
  • 只有当前复选框被勾选时,才会清空之前的显示状态,展示最新选中的图片
  • 可选的取消其他复选框勾选的逻辑,避免出现多个复选框被勾选但仅显示一张图片的认知冲突,不需要直接删除对应行即可
  • 取消当前勾选的选项时,对应图片会隐藏,此时无图片展示,如果需要取消时默认展示第一张/默认图,可以在else分支里补充对应逻辑

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 04:24:03