【发布时间】:2011-05-26 15:58:10
【问题描述】:
我有一个脚本,它应该动态地将包含组成员名称的 div 放置在一个容器 div 中。这些 div 由“groupMemberEntryDiv”和组成员的电子邮件地址(在我的系统中是唯一的)的串联来标识。
问题是在 jQuery 选择器中使用 ID 不起作用。我相信我已经涵盖了可能导致此问题的所有可能的挂断:
- 电子邮件地址中存在“@”(元素 ID 不能包含此字符)。我已通过将它们替换为“:”来解决此问题,这是允许的字符。另外,由于 ':' 没有出现在有效的电子邮件地址中,我可以使用 indexOf 解析字符串并在需要再次使用电子邮件地址时将其替换为 '@'。
- 存在“:”和“.”在(现在修改的)电子邮件地址(jQuery may see them as pseudo-classes and classes respectively)中。按照该页面中的说明,我尝试转义字符。事实上,我从那个链接中提取了 .replace() 函数来执行此操作。
不幸的是,选择器仍然无法工作。我创建了一个简单的jFiddle 来说明问题。
有人能解释一下发生了什么吗?
【问题讨论】:
-
让每个人都可以在标记中看到成员电子邮件似乎不是一个好主意。您应该使用一些数字 ID。
-
@BoltClock。你当然可以把它们放在一个 ID 中,它只会弄乱选择器,所以你必须逃避它们
-
@morgar:我的系统设置为“添加”某人为联系人需要知道他们的电子邮件地址才能发送请求。
-
@Neal:如果我有
id='blah:hover',会发生什么?那有效吗? CSS 将如何处理? -
@Kevin 还是个坏主意,但是,您可以使用 data-* 属性来存储电子邮件地址。即
<div id="user-323" data-email="will_get_spammed@gmail.com"><div>,然后使用$('#user-323').data('email');访问
标签: javascript jquery jquery-selectors css-selectors