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

21点游戏开发:document.createElement("img")转jQuery遇图片不显示问题

问题根源

你写的$(".img")是jQuery选择器,用来匹配页面上已有的class为img的元素,不是创建新的<img>标签。这就导致你要么重复添加了页面上已有的图片元素(视觉上没新增),要么没匹配到任何元素,append了空内容,所以新卡牌图片显示不出来。

正确的jQuery写法

下面两种方式都能实现原生document.createElement("img")的效果:

写法一:先创建元素,再设置属性

let card = deck.pop();
// 创建新的img元素,返回jQuery对象
let cardImg = $("<img>");
// 给新元素设置src属性
cardImg.attr("src", "./cards/" + card + ".png");
yourSum += getValue(card);
yourAces += ValueOfAce(card);
$("#PLAYERcards").append(cardImg);

写法二:创建时直接指定属性(更简洁)

let card = deck.pop();
// 一次性创建img元素并设置src属性
let cardImg = $("<img>", {
  src: "./cards/" + card + ".png"
});
yourSum += getValue(card);
yourAces += ValueOfAce(card);
$("#PLAYERcards").append(cardImg);
补充说明
  • jQuery创建新元素的语法是$("<标签名>"),和原生document.createElement完全对应,比如$("<div>")就是创建一个新的div元素。
  • 如果需要给新卡牌图片加样式类,可以在创建时一起配置,比如:
    let cardImg = $("<img>", {
      src: "./cards/" + card + ".png",
      class: "card-style" // 添加自定义class
    });
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.24 11:40:13