在单选按钮jQuery中传递数组值

Passing Array Values in Radio Button jQuery

本文关键字:数组 单选按钮 jQuery      更新时间:2023-09-26

我有一个jQuery函数来修饰单选按钮,除了在一种情况下,当按钮的name属性包含一个带括号的数组值。

这是一个购物车系统,通过单选按钮有可选择的选项,所以按钮看起来像这样:

<input type="radio" name="option[218]" value="5">
<input type="radio" name="option[218]" value="6">
<input type="radio" name="option[218]" value="7">
...

抛出错误的jQuery脚本部分如下所示:

$('input:radio[name=' + radio.attr('name') + ']')
  .not(':disabled')
  ...

错误:

Uncaught Error:语法错误,无法识别的表达式:input:radio[name=option[218]]

显然,它不希望在name值中找到括号[ ]

我怎么能切换到允许这些被发现,而不是错误?

您需要将值括在双引号内" "

$('input:radio[name="' + radio.attr('name') + '"]')
// ---------------- ^      here and here       ^

因此您的值将被正确转义并输出为:

input:radio[name="option[218]"]

可以将""中的值括起来,以转义特殊字符

$('input:radio[name="' + radio.attr('name') + '"]')