jquery – 通过元素ID元素类选择相同的元素两次

前端之家收集整理的这篇文章主要介绍了jquery – 通过元素ID元素类选择相同的元素两次前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
为什么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>
]

为什么会这样呢?

*更新*

Reproduced这在jsFiddle

*更新#2 *

如果使用非数字ID,则为works just fine.

解决方法

首先,页面上的id必须是唯一的.这就是背后的想法.

您的问题是使用无效的ID选择器(根据HTML4):

  1. ID and NAME tokens must begin with a letter ([A-Za-z]) and may be
    followed by any number of letters,digits ([0-9]),hyphens (“-“),
    underscores (“_”),colons (“:”),and periods (“.”).

在其他doctypes有不同的限制,但你总是需要至少一个字母.由于您只使用一个数字,因此无效.这可能是您使用非数字ID的所有细节时的解释.仍然是jQuery的一个奇怪的行为.

使用至少一个字母[A-Za-z]来填充你的ID,甚至更好地描述它.

原文链接:https://www.f2er.com/jquery/176282.html

猜你在找的jQuery相关文章