我有一个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')
...
错误:
未捕获错误:语法错误,无法识别的表达式:input:radio [name = option [218]]
显然,它并不期望在名称值中找到方括号[ ]
。
如何将其切换为允许找到这些而不是错误?
答案 0 :(得分:2)
您需要将值包装在双引号" "
$('input:radio[name="' + radio.attr('name') + '"]')
// ---------------- ^ here and here ^
因此,您的值将被正确转义并输出为:
input:radio[name="option[218]"]
答案 1 :(得分:1)
您可以将值括在""
中以转义特殊字符
$('input:radio[name="' + radio.attr('name') + '"]')