我有一个HTML模板,其中包含一个jQuery函数,该函数对我的Web服务器执行Ajax请求。响应中的数据包含具有汽车品牌名称和数字的字符串,用于在每个特定汽车品牌的输入复选框中设置值。以下是模板中的示例:
<input type="checkbox" name="list" value="2">
<label for="brand">Mercedes</label>
我正在尝试使用以下jQuery代码来查看是否为每个汽车品牌选中了输入复选框。 index.name是一个字符串,包含汽车品牌(例如“Mercedes”),index.id包含值2,这是一个JavaScript编号类型(我在控制台中确认了这一点):
$.each(data, function(key, index) {
if ( $('input[type=checkbox][value=index.id]').prop('checked', true) ) {
console.log("Checkbox is checked");
}
});
当我运行jQuery代码时,我收到此错误:
Uncaught Error: Syntax error, unrecognized expression: input[type=checkbox][value=index.id]
谁能告诉我我做错了什么?我已经阅读了有关如何执行此操作的其他Stackoverflow问题以及我正在做的事情似乎是正确的。
答案 0 :(得分:1)
如果参数包含任何特殊字符(在本例中为.
字符),则需要将参数引用到属性选择器:
$('input[type=checkbox][value="index.id"]')
但是,这将查找一个复选框,其值为文字字符串index.id
。如果您实际上尝试使用表达式index.id
的值,则不会这样做,因为变量不会在字符串内扩展。你需要连接:
$('input[type=checkbox][value="' + index.id+ '"]')
或使用ES6模板文字:
$(`input[type=checkbox][value="${index.id}"]`)