JQuery Selector不接受带有转义字符作为参数的字符串

时间:2017-06-29 20:38:39

标签: jquery

在我的控制台中,我正在表演:

thing = '#'+id.replace(new RegExp(" ", "g"), "_").replace(/[!"#$%&'()*+,.\/:;
        <=>?@[\\\]^`{|}~]/g, "\\\\$&")

并被告知这些是thing

的内容
"#Accounting\\/Payroll"

那个

>typeof(thing)
>"string"

当我表演时:

$(thing)

我得到了

Uncaught Error: Syntax error, unrecognized expression: #Accounting\\/Payroll
    at Function.ga.error (jquery.min.js:2)
    at ga.tokenize (jquery.min.js:2)
    at ga.select (jquery.min.js:2)
    at Function.ga [as find] (jquery.min.js:2)
    at r.fn.init.find (jquery.min.js:2)
    at r.fn.init (jquery.min.js:2)
    at r (jquery.min.js:2)
    at <anonymous>:1:1 

但是当我表演时

$("#Accounting\\/Payroll")

我得到了

    [div#Accounting/Payroll.col-xs-12.col-sm-6.col-md-4.col-lg-3.department, prevObject: r.fn.init(1)]

那我的第一个选择器出了什么问题?

编辑:得到它

我想我现在明白了。存储字符串时会计算转义。因此,当我在"#Accounting\\/Payroll"字面上输入选择器时,jquery使用存储的字符串"#Accounting\/Payroll"作为其选择器。我的第一个用法不起作用,因为它使用存储的字符串"#Accounting\\/Payroll"作为其选择器。谢谢adeneo。

0 个答案:

没有答案