Javascript jquery中的特殊字符

Javascript jquery中的特殊字符,javascript,jquery,escaping,Javascript,Jquery,Escaping,我有一个div列表,每个div都有一个id。该id还用作链接:“http://en.wikipedia.org/wiki/“+id是指向wikipedia上此项目的链接,”/image/“+id+”.jpg“是此项目的本地图像 但是我有一些带有特殊字符的id。有两种类型(我发现有bug):第一种是包含括号的A_ub(B),第二种是包含特殊字母的A%C3%A9B(AéB)。我知道()可以替换为%28%29,所以它基本上只是一种类型。我已经测试过,这种名称适用于图像和wiki链接 问题是,当我使用j

我有一个div列表,每个div都有一个id。该id还用作链接:
“http://en.wikipedia.org/wiki/“+id
是指向wikipedia上此项目的链接,
”/image/“+id+”.jpg“
是此项目的本地图像

但是我有一些带有特殊字符的id。有两种类型(我发现有bug):第一种是包含括号的
A_ub(B)
,第二种是包含特殊字母的
A%C3%A9B(AéB)。我知道
()
可以替换为
%28%29
,所以它基本上只是一种类型。我已经测试过,这种名称适用于图像和wiki链接

问题是,当我使用jQuery时,
$('#'+id)
找不到带有特殊字母的对象。有人知道如何处理吗?

有关更多信息,请参阅

就我个人而言,我认为ID应该符合人类可读、易于理解的ID。考虑使用不同的机制附加URL,如jQuery的代码> $.DATA < /C> >,或另一个不具有有效性限制的属性。

您尝试过:

var id = encodeURIComponent(id);
$('#' + id);

看看能不能解决

如果您查看页面的第二段,它会显示这些字符
!“#$%&'()*+,./:;?@[\]^`{124;}
在使用时需要转义


但是,如果您要包含其他字符,最好使用它们的转义码来包含它们(将自动为您执行此操作)。因此,可以用
\u00e9
替换此字母

ID和名称标记必须以字母([a-Za-z])开头,并且可以是 后跟任意数量的字母、数字([0-9])、连字符(“-”), 下划线(“”)、冒号(“:”)和句点(“.”)

因此,元素ID或名称中不允许使用(、)和%等字符

ID中的不一致字符可能会导致jQuery以外的问题。使用encodeURIComponent(例如替换为%28)没有帮助,因为不允许使用%字符。但是,对于典型的a-z、a-z范围之外的字母,您可以使用字符实体,或者您可以只使用普通的old document.getElementById,如果确实需要使用jQuery:

$(document.getElementById(id))

可能足够了(但不可靠)。

我相信可以。这样会容易得多。我用标题来记录链接名。