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

CSHTML中如何调用动态生成的ID?jQuery选择器写法是否正确

问题解答

现有写法存在多处错误,无法正常生效,具体问题如下:

  • 属性选择器规则错误:[id^=xxx]前缀匹配规则中不需要加#,#是ID选择器的专属标识,放在属性匹配规则中会被当成普通字符参与匹配,完全无法命中前缀为payMethod的元素。
  • 大小写不匹配:后端生成的ID前缀是小写开头的payMethod,你的选择器中写的是大写开头的PayMethod,字符串匹配对大小写敏感,二者完全无法匹配。
  • 语法格式错误:属性选择器中id和^=之间不能有空格,空格会被jQuery解析为后代选择器逻辑,直接导致整个选择器规则失效。
  • 选中状态设置方法不符合最佳实践:使用attr()设置单选框的checked状态容易出现属性更新但DOM实际选中状态不同步的问题,对于表单元素的布尔属性(checked、disabled、selected等),推荐使用prop()方法设置。

修正后的正确写法

如果你的HTML元素ID是直接渲染@payMethod的值生成的(即ID前缀为payMethod),修正后的代码如下:

function() {
    $('input[id^="payMethod"]').prop('checked', headerChecked);
}

额外注意

你当前写的HTML标签<input id=f(@payMethod) type="radio" value=" @method.Value" name="cartaCont" />存在渲染问题,如果是Razor等后端模板语法,这个写法生成的ID会是f(payMethodXXX)格式而非你预期的payMethodXXX,如果确实需要保留f()格式,对应的选择器要调整为$('input[id^="f(payMethod"]')。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 07:15:05