我在rails应用程序上有一个ruby,它生成一个json字符串并将其保存在div数据属性中。这是在使用浏览器呈现之前ruby文件中的字符串:
'{"all":{"$(\'#condition_fields .table_form div[data-id=2] select[data-attr=bar_type]\')":{"equal":"Baz"}}}'
在浏览器中检查时,json字符串显示如下:
data-dependencies="{"all":{"$('#condition_fields .table_form div[data-id=2] select[data-attr=bar_type]')":{"equal":"Baz"}}}"
jQuery插件通过调用eval来使用此字符串中的选择器。当jQuery插件输出到控制台时,选择器如下所示:
$('#condition_fields .table_form div[data-id=2] select[data-attr=bar_type]')
我还没有找到一个转义的组合,它为jQuery生成了一个可用的选择器。我要么
Error: Syntax error, unrecognized expression: #condition_fields .table_form div[data-id=2] select[data-attr=bar_type]
或
SyntaxError: Unexpected token ILLEGAL
取决于我如何将字符串(引用或不引用)输入到控制台中的jQuery eval中。
非常感谢任何帮助!
谢谢!
答案 0 :(得分:1)
您的错误会显示您的选择器:#condition_fields .table_form div[data-id=2] select[data-attr=bar_type]
。
正如您所看到的,这里有一个不间断的空间。它是一个特殊字符,jQuery不会将其识别为空格。
尝试删除.table_form
,div
和select
之间的空格,然后输入真实空格。
如果你不能,你总是可以使用臭名昭着的转换方法:
$('<div>').html(youString).text();
答案 1 :(得分:1)
Javascript不喜欢不间断的空格。不要使用
,而是使用 
。