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

AngularJS实现勾选复选框时显示指定图片的方法

问题原因

你当前代码不生效有3个核心问题:

  • 选择器匹配错误:你监听的是name=reserv1的输入框,但实际页面复选框的name属性是reserv,事件根本绑定不上
  • 违背AngularJS设计逻辑:AngularJS靠双向绑定+脏检查机制同步数据和视图,你用jQuery事件修改$scope变量后,没有主动触发脏检查,视图不会自动更新
  • 冗余DOM操作:AngularJS会自主处理页面编译渲染流程,不需要手动写$(document).ready这类DOM就绪监听
符合AngularJS规范的实现方式

完全不需要引入jQuery,用AngularJS自带的指令就能实现,逻辑更简洁也更易维护。

调整HTML视图部分

给复选框加ng-model绑定勾选状态,新增目标图片节点,用显隐指令控制展示逻辑:

<body ng-app="imgApp" ng-controller="imgCNTRL">
<li class="stay-item" name="hotel" id="hotel1">
    <h2>Hotel Grande Bretagne</h2>
    <img src="https://www.fivestaralliance.com/files/fivestaralliance.com/field/image/nodes/2009/10181/10181_0_hotelgrandebretagne_fsa-g.jpg">
    <p class="img__description">
        Facilities
        <br><br>
        2 swimming pools
        <br>
        Free WiFi
        <br>
        Parking
        <br>
        Spa / Sallon
        <br>
        Bar
        <br>
    </p>
    <br><br>
    <div class="form-check">
        <!-- 用ng-model绑定复选框勾选状态 -->
        <input class="form-check-input" type="checkbox" id="reserv" name="reserv" ng-model="isReserved">
        <label class="form-check-label" for="reserv">Reservation</label>
    </div>
    <!-- 勾选时展示目标图片 -->
    <img ng-if="isReserved" ng-src="{{reservedImgUrl}}" alt="reserved preview">
</li>

调整控制器JS部分

只需要在作用域上定义目标图片地址即可,不需要写任何DOM事件监听逻辑:

var app = angular.module('imgApp', []);
app.controller('imgCNTRL', function($scope){
    // 直接在作用域定义需要展示的目标图片地址
    $scope.reservedImgUrl = "https://t-cf.bstatic.com/xdata/images/hotel/max1024x768/328010584.jpg?k=f8243c30e30a6671e3a618ed132f42d10bccd185b464caec8e7bbcb82915d837&o=&hp=1";
});
关键逻辑说明
  • ng-model="isReserved"会自动把复选框的勾选状态(布尔值,勾选为true,取消勾选为false)双向绑定到作用域变量,不需要手动监听点击事件
  • ng-if="isReserved"会持续监听isReserved的状态变化,值为true时才会把图片节点渲染到页面,值为false时自动移除节点
  • 图片地址用ng-src而非原生src属性,是为了避免Angular还没完成表达式解析时,浏览器把{{reservedImgUrl}}当成真实地址发起无效请求
  • 如果需要图片常驻DOM、仅切换显示/隐藏状态,把ng-if换成ng-show即可,二者区别是ng-show仅通过CSS的display属性控制显隐,不会增删DOM节点

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.27 19:24:22