语法错误,无法识别的表达式:选项 [值 = 属性名称]

Syntax error, unrecognized expression: option[value=property name]

本文关键字:属性 选项 错误 识别 表达式 语法      更新时间:2023-09-26

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

<datalist id="properties">
       <option value="property name"></option>
       <option value="property"></option>
</datalist>

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

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
}

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

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

如何摆脱这个错误?

尝试添加引号,如:

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

或者最好将其分解为:

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

如果您想检查"属性名称"之类的文本,那么您可以直接执行以下操作:

var pro = $('#properties').find("option[value='"+user_property+"']");

尝试在值周围添加引号,它将起作用。

$('#properties').find("option[value='property name']")

您需要为您的值添加单引号,例如

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