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

jQuery选择带点号的动态id元素更新文本不生效如何解决?

问题根因

核心是CSS选择器的特殊字符解析规则:.在CSS选择器中是类选择器的标识符,当你使用$("#someTab.123")这类写法时,jQuery会将其解析为「查找id为someTab且拥有类名123的元素」,而非查找id为someTab.123的元素,因此匹配不到对应节点。

解决方法
  • 方法1:转义id中的特殊字符
    构造选择器时将id中的.转义,JS中需要用双反斜杠实现转义:
    var someTabId = "someTab." + userId
    // 转义点字符
    var selector = "#" + someTabId.replace(/\./g, '\\.')
    $(selector).text("some text here")
    
  • 方法2:使用原生DOM方法匹配id(更稳妥)
    原生document.getElementById方法是直接按字符串完全匹配id,不会做CSS选择器解析,完全规避特殊字符问题:
    var someTabId = "someTab." + userId
    $(document.getElementById(someTabId)).text("some text here")
    
  • 方法3:从命名规则规避问题
    后续命名id时避免使用CSS选择器保留的特殊字符(.、#、:、[、]等),比如将点替换为下划线:
    页面元素id改为:<td id="someTab_@user.UserId">I want to update value here</td>
    JS构造id的逻辑对应修改为:var someTabId = "someTab_" + userId

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 05:36:03