【发布时间】:2012-10-16 21:29:10
【问题描述】:
我使用 jQuery 1.8.0 作为 WordPress 插件的一部分并存储鼠标单击 x/y 坐标并保留节点信息,包括父路径信息(类似于 Getting a jQuery selector for an element)。
经过一些实验后,我注意到 jQuery 无法读取我存储的某些选择器。一些例子:
html#:eq(0) -> '#' 不是必需的,但 jQuery 使用或不使用 '#' 来评估它!body#:eq(0) -> jQuery 无法评估它,它在这一行中止/停止(不同的行为到html标签)
div#:eq(1) -> jQuery 评估这个(应该中止吗?)div:eq(1) -> jQuery 在这一行中止/停止(应该工作?)
这是一个错误吗(如果是我会报告给 jQuery)?我从 cmets 对这个问题的理解是,当且仅当元素有 id 时才应该出现“#”,但这似乎不是 jQuery 的行为方式。
【问题讨论】:
-
我不明白这个问题?在“怪癖”中,您是指错误吗?
-
"什么时候必须包含哈希 (#),即使不存在 id 标签,什么时候不能使用?您的第一部分和第二部分相互回答......
-
你能用另一个版本测试吗?似乎它适用于 1.7.1
-
你的例子和你的问题有什么关系?很明显,这些都不是 ID,您不应该在任何这些选择器中使用
#。如果您尝试报告错误,请在他们的错误跟踪器中进行。 -
我猜我生成路径的代码不如它可能的那样好,因为它在某些情况下不应该添加“#”,在某些情况下 jQuery 是宽容的,而在其他情况下它不是。我的主要观点是,为什么 jQuery 需要为 'div#:eq(1)' 加上 #,即使这个元素没有 id?为什么 'div:eq(1)' 也不能工作?为什么 'body#:eq(0)' 挂起而 'html#:eq(0)' 没有挂起,'#' 在两者中不是多余的吗?