gpt4 book ai didi

json - jquery 选择器不支持括号

转载 作者:行者123 更新时间:2023-12-01 06:02:29 25 4
gpt4 key购买 nike

我很难使用包含括号的 jquery 选择器。基本上我在 jquery 代码中解析来自服务器的 JSON 响应。然后,解析完成后,我会迭代该对象。

这个对象有这样的结构:

  errors = {
input#title_id: "error message",
select#authors_id[]: "error message 2"
}

然后我像下面这样迭代这个 map :

$.each(errors, function(fieldSelector,errMsg){
fieldSelector = fieldSelector.replace('[','\\\\[');
fieldSelector = fieldSelector.replace(']','\\\\]');
$(fieldSelector).hide(); //for the example
}

一切正常,除了带有括号的 id 的选择之外!

最佳答案

根据 jQuery Selector documentation ,您需要使用两个括号来转义元字符:

If you wish to use any of the meta-characters ( such as !"#$%&'()*+,./:;<=>?@[\]^{|}~ ) as a literal part of a name, you must escape the character with two backslashes: \\. For example, if you have an element with id="foo.bar", you can use the selector $("#foo\\.bar").

但是双括号只需要单括号字符 \存在于选择器字符串中。然后选择器引擎稍后使用该括号来转义元字符。无论如何,这意味着您的代码也只需要使用两个括号 - 无需提供额外的转义级别:

$.each(errors, function(fieldSelector,errMsg){
fieldSelector = fieldSelector.replace('[','\\[');
fieldSelector = fieldSelector.replace(']','\\]');
$(fieldSelector).hide(); //for the example
});

关于json - jquery 选择器不支持括号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9949306/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com