Javascript 设置<;帆布>;带有jQuery的id

Javascript 设置<;帆布>;带有jQuery的id,javascript,jquery,html,canvas,Javascript,Jquery,Html,Canvas,早上好 我正在尝试更改画布元素中的图标id 这看起来不错,但一定有什么我不太明白的,因为它不工作(页面上没有显示图标,只是空白),并且控制台没有返回任何错误。如果有帮助的话,“天气”就是一根弦 <canvas id="wIcon" width="150" height="150"></canvas> ---------- $("#wIcon").prop("id",weather); 我想做的是通过更改id将文档中显示的内容更改为集合中的另一个。相关字符串存储在天气变量

早上好

我正在尝试更改画布元素中的图标id

这看起来不错,但一定有什么我不太明白的,因为它不工作(页面上没有显示图标,只是空白),并且控制台没有返回任何错误。如果有帮助的话,“天气”就是一根弦

<canvas id="wIcon" width="150" height="150"></canvas>
----------
$("#wIcon").prop("id",weather);
我想做的是通过更改id将文档中显示的内容更改为集合中的另一个。相关字符串存储在天气变量中,因此我认为根据我在天气中使用的内容很容易从一个更改为另一个:

$("#snow").prop("id",weather);
或者,正如这里所说

$("#snow").attr("id",weather);
听起来我对画布的理解还不够,所以我转向了另一个解决方案,那就是使用。在图标中使用.addClass,效果非常好(如果您有兴趣,甚至可能想给我一点建议!),但我还是把这个问题留在这里,以备将来找到解决方案时参考。

使用该方法。此外,您选择的是画布,而不是图标

你可以这样做

<canvas id="wCanvas" width="150" height="150">
  <img id="wIcon" src="...">
</canvas>

$(“wIcon”).attr(“id”,天气)


//$(“wIcon”).prop(“id”、“weather”);
$(“wIcon”).attr(“id”,“weather”);

id不是一个属性,而是一个属性,而且您已经有了该属性的idcanvas@guradio哼什么
id
既是一个HTML属性,也是一个元素属性。通过修改attribute,您还可以修改属性,通过修改属性,您也可以修改属性。您的问题还不清楚:“画布元素中的图标id”是什么意思???画布元素内部不能有任何可见的内容(实际上,IIRC唯一允许的内容是一个
input
标记以允许键盘聚焦)。你说的这个图标是什么?这是否类似于通过CSS设置的bg图像?如果是这样,请向我们展示您的CSS。这幅画是在画布的背景下画的吗?如果是的话,给我们看看你的js。那么是的,你必须告诉你的js插件你确实改变了画布的id,我希望它不是每一个ms都检查它是否应该更新。但是,如果不深入研究这个插件,我想一个简单的
icons.set(“snow”,Skycons.FOG),则会将雪图标更改为雾图标。但现在,我不知道你在等待什么答案。。。也许最好删除?嗯,问题可能是“为什么$(“#snow”).attr(“id”,weather);不起作用?”:D,哦,旁注:它只在文档准备就绪时才发生变化。@FabioMancin您使用的是什么版本的jquery,因为它只运行fine3.2.1/jquery.min.js,不起作用。如果我在HTML中手动设置图标的id,但在使用jQuery动态设置图标时拒绝更改,则图标会更改。@FabioMancin检查您是否正确加载了jQuery。运气不好。也许图标在一个集合内很重要?试试这个$(“#wIcon”).prop(“id”,“weather”)。当它显示为$(“#wIcon”).prop(“id”,weather)时,显示“未捕获的引用错误:天气未定义”
$("#snow").attr("id",weather);
<canvas id="wCanvas" width="150" height="150">
  <img id="wIcon" src="...">
</canvas>