获取jQuery无法识别的表达式错误

时间:2018-04-10 17:31:18

标签: javascript jquery

我有一个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问题以及我正在做的事情似乎是正确的。

1 个答案:

答案 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}"]`)