连接变量的属性选择器会产生语法错误

时间:2014-12-17 11:55:03

标签: javascript jquery

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

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

ERROR:

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

这里有什么问题?

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

1 个答案:

答案 0 :(得分:4)

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

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

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

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


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