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

动态修改Awesome Icon颜色遇问题:代码返回undefined求助

问题排查与修复方案

让我帮你找出代码里的问题,你遇到的undefined是因为两处关键错误导致的:

1. jQuery ID选择器缺少前缀

你当前用$('idAwesomeIcon')来获取图标元素,但jQuery中通过ID选择元素必须要加#前缀。没有#的话,jQuery会把它当作HTML标签名去查找,显然不存在名为idAwesomeIcon的标签,所以找不到元素,调用.css("color")自然返回undefined。

正确的选择器写法是:

$('#idAwesomeIcon')

2. 函数定义与调用名称不匹配

你定义的函数是changeAIColor(idName),但在th:onclick里调用的却是changeIconColor();——函数名称完全不一致,这会导致点击时根本不会执行你写的那个带alert的函数(浏览器严格模式下还会直接报错)。


修正后的完整代码

<script type="text/javascript">
function changeAIColor() {
    // 修正ID选择器,加上#
    alert($('#idAwesomeIcon').css("color"));
}
</script>

<a href="#" th:onclick="'changeAIColor();'">
    <span th:if="${#lists.contains(userMenus, menu)}">
        <i id="idAwesomeIcon" class="fa fa-toggle-on fa-lg" style="color:#009900; text-align: center;" aria-hidden="true"></i>
    </span>
</a>

可选优化:支持动态传入ID

如果后续你需要给多个图标复用这个函数,可以利用你定义的idName参数,修改成更灵活的版本:

function changeAIColor(idName) {
    // 动态拼接ID选择器
    alert($('#' + idName).css("color"));
}

对应的HTML调用也要改成:

<a href="#" th:onclick="'changeAIColor(\'idAwesomeIcon\');'">

这样不管图标ID是什么,都能传入函数获取颜色值。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 07:18:35