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

如何用jQuery匹配数组中alt标签的图片并添加HTML元素?

解决多Alt标签匹配的jQuery实现问题

嘿,你的问题很常见——当需要匹配一组值而不是单个值时,原来的单值判断逻辑就不适用了,我来帮你修正代码:

首先看你当前代码的两个核心问题:

  • 你定义list的方式不对:var list = ("1904381_BERR", "1904380_ORAN"); 这种写法其实是逗号操作符,最后只会保留最后一个值"1904380_ORAN",根本不是数组。
  • 判断条件$(this).attr("alt") == list是拿单个字符串和整个数组比较,永远不会成立。

修正后的代码方案

我们需要把目标alt值定义成数组,然后检查当前图片的alt是否存在于这个数组中,这里有两种常用方法:

方法1:使用jQuery的$.inArray()方法

$(document).ready(function() {
  // 正确定义需要匹配的alt标签数组
  var targetAlts = ["1904381_BERR", "1904380_ORAN"];
  
  $('img').each(function(){
    var currentAlt = $(this).attr("alt");
    // 用$.inArray检查当前alt是否在目标数组中,返回-1表示不存在
    if($.inArray(currentAlt, targetAlts) !== -1){
      $(this).before('<img src="/images/guide/dropped.png" class="cxl">');
    }
  });
});

方法2:使用原生JS的Array.includes()方法(更简洁)

如果你的项目环境支持ES6+,原生数组的includes()方法更直观:

$(document).ready(function() {
  var targetAlts = ["1904381_BERR", "1904380_ORAN"];
  
  $('img').each(function(){
    if(targetAlts.includes($(this).attr("alt"))){
      $(this).before('<img src="/images/guide/dropped.png" class="cxl">');
    }
  });
});

额外优化建议

  • 可以把选择器优化得更精准,比如只选中.grid下的图片:$('.grid img').each(...),避免影响页面其他图片
  • 注意引号的一致性,建议统一用单引号或双引号,代码更整洁

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.13 08:50:11