【发布时间】:2013-02-17 14:45:04
【问题描述】:
为什么 jQuery 在这里两次返回相同的元素?
多次检查 HTML,只有一个 <div> 和 id="3" 和 class="password_field_real"。
这是用class="password_field_real"获取所有元素的结果:
> $(".password_field_real")
[
<div class="password_field_real" id="2" style="display: none;"></div>,
<div class="password_field_real" id="3" style="display: none;"></div>,
<div class="password_field_real" id="7" style="display: none;"></div>,
]
但是,当我尝试获取 class="password_field_real" 和 id="3" 时,我得到了两个相同的 div 列表!
> $("#3.password_field_real")
[
<div class="password_field_real" id="3" style="display: none;"></div>,
<div class="password_field_real" id="3" style="display: none;"></div>
]
其他两个div不是这样的:
> $("#7.password_field_real")
[
<div class="password_field_real" id="7" style="display: none;"></div>
]
为什么会发生这种情况?
* 更新 *
ReproducedjsFiddle 中的这个
* 更新 #2 *
如果使用非数字 ID,则为 works just fine。
【问题讨论】:
-
您使用的是什么版本的 jQuery?你能想出一个 jsFiddle 或类似的东西来证明这个问题吗?我无法用 jQuery 1.9.1 (jsfiddle.net/B7S2f) 重现这一点。
-
你知道数字 ID 只在 HTML5 中是合法的吗?
-
我认为应该没有问题,如果您遇到问题,请先清除
cache and cookies然后再检查。 -
@DreamEater:我回滚了你的编辑,因为你破坏了帖子中的控制台格式。
-
id 用于唯一元素,这里使用 8 个元素,id 为“3” ...
标签: jquery html jquery-selectors