javascript - 将属性选择器与变量连接会出现语法错误

标签 javascript jquery

此代码有效,类已添加,但我收到错误。

console.log(key);    //first_date
$('*[name='+key+']').addClass('error');

错误:

Uncaught Error: Syntax error, unrecognized expression: `*[name=]`

这里有什么问题吗?

<input id="date-picker-1" type="text" class="date-picker form-control hasDatepicker" name="first_date">

最佳答案

发生错误是因为您的 key 变量为空。 '*[name='+key+']' 正在评估为 '*[name=]'。为避免错误,您可以将 key 变量用引号引起来:

$('*[name="'+key+'"]').addClass('error');

这样您就不会得到错误,因为它不会尝试计算 *[name=],而是尝试计算 *[name=""]。但是,由于您的 key 变量似乎为空,这可能不会产生您正在寻找的结果。

仔细检查您的代码以确保在调用 addClass 之前设置了 key


事实上,如果你所说的添加了“错误”类,我想你的代码被执行了两次 - 一次是 key 为空,另一次是 key 实际上等于“first_date”。

关于javascript - 将属性选择器与变量连接会出现语法错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27525023/

相关文章:

javascript - 正则表达式只允许 9 或 10 个字符?

javascript - 当我到达最后一页时,我向服务器发出 AJAX 调用,以获取数据库中的更多数据,而无需等待单击下一个按钮

javascript - jQuery动画向左滑动​​没有文字换行

javascript - 我如何使用ajax url发送两个参数

javascript - 在 angular2/typescript 中使用 jointjs

javascript - 多个两个输入以及 jQuery 动态生成的输入

javascript - 为什么我的 jQuery .map 不能在这里组合我的数组?

javascript - 如何创建下拉复选框控件?

javascript - 具有多个 View 的 Angular ui-router 未显示

javascript - 如何在提交之前获取 GET 表单的查询字符串?