语法错误,无法识别的表达式:option [value = property name]

run*_*ark 4 javascript jquery datalist

我有一个看起来像这样的数据表

<datalist id="properties">
       <option value="property name"></option>
       <option value="property"></option>
</datalist>
Run Code Online (Sandbox Code Playgroud)

现在,我正在使用此代码查找用户输入的值在列表中的位置:

var user_property = $('#user_property').val().toLowerCase(); // taken from input type with id user_property
var pro = $('#properties').find("option[value="+user_property.replace(' ','-')+"]");
if(pro != null && pro.length > 0)
{
    // run some code
}
else
{
    // show error popup
}
Run Code Online (Sandbox Code Playgroud)

我收到了错误 var pro = $('#properties').find("option[value="+user_property.replace(' ','-')+"]");

错误代码说 Syntax error, unrecognized expression: option[value=property name]

如何摆脱这个错误?

Sud*_*oti 11

尝试添加引号,如下:

var pro = $('#properties').find("option[value='"+user_property.replace(' ','-')+"']");
Run Code Online (Sandbox Code Playgroud)

或者更好地分解为:

var replaced = user_property.replace(' ','-');
var pro = $('#properties').find("option[value='"+replaced+"']");
Run Code Online (Sandbox Code Playgroud)

如果你想检查像"属性名称"这样的文字,你可以直接做:

var pro = $('#properties').find("option[value='"+user_property+"']");
Run Code Online (Sandbox Code Playgroud)