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

根据Elo评级为玩家名称加样式:代码失效及this使用疑问

为什么我的Elo评级样式添加代码不生效?

你的代码确实有两个关键问题,尤其是this的指向和内容获取方式不对,咱们一步步拆解:

问题1:this的指向完全不符合预期

你当前的代码是直接执行if (parseInt($("td.data-rating").val()) > 100),这里的this并没有指向你想操作的那个td.data-rating元素——它指向的是全局window对象(浏览器环境下)。因为你没有在遍历元素的回调或者事件处理函数里,this根本和目标单元格没关系,所以后面的$(this).closest("tr")自然找不到正确的行。

问题2:用错了获取单元格内容的方法

<td>不是表单控件(比如input、select),它没有value属性,所以$("td.data-rating").val()会返回undefined,转成整数后就是NaN,你的条件>100永远不会成立。获取表格单元格的文本内容应该用.text(),还要记得去除可能的空格(比如单元格里的换行或缩进),避免解析出错。

修正后的代码

把代码改成遍历每个评级单元格,这样this就能正确指向当前元素,同时修正内容获取方式:

$("td.data-rating").each(function() {
  // 获取单元格文本并去除空格,转成整数
  const rating = parseInt($(this).text().trim(), 10);
  // 先判断是否是有效数字,再判断评级条件
  if (!isNaN(rating) && rating > 100) {
    $(this).closest("tr").find("td.data-name").addClass("important");
  }
});

修正点说明:

  • 用.each()遍历所有td.data-rating元素,回调函数里的this就是当前正在处理的评级单元格,完美符合你的需求。
  • 用.text().trim()获取干净的文本内容,避免空格导致的解析错误。
  • 增加!isNaN(rating)的判断,防止单元格里有非数字内容时出现逻辑异常。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.27 09:29:01