重复的id是搞砸了jquery选择器吗?

Mat*_*att 7 asp.net-mvc jquery css-selectors fancybox

如果我有两个div,都是id ="myDiv"

$("#myDiv").fadeOut();淡出两个div的出来吗?或者它只会在第一/第二次消失?或者根本没有?

如何更改哪一个淡出?

注意:我知道重复的ID是违反标准的,但我使用的是fancybox模式弹出窗口,它会在页面上复制弹出窗口内容的指定内容.如果有人知道这方面(也许我使用fancybox错误)请告诉我.

kar*_*m79 11

元素ID应该是唯一的.拥有相同ID的多个DIV将是不正确和不可预测的,并且违背了ID的目的.如果你这样做:

$('.myDiv').fadeOut();
Run Code Online (Sandbox Code Playgroud)

假设你给他们一类myDiv和唯一ID(或根本没有),这会使他们两个都消失.


Mat*_*hen 7

"注意:我知道重复的ID是违反标准的"

然后不要这样做.你已经发现了两个问题.它违反了标准,它干扰了jQuery(实际上是常规DOM)的选择机制.未来可能会有更多问题.

很可能,你正在使用的fancybox错了,在这种情况下,我希望有人熟悉它可以帮助你.或者更糟糕的是,如果脚本本身存在缺陷,则不应使用它.


Wil*_*del 6

查询ID时,jQuery只匹配一个元素.Element将返回最多一个对象的数组$("#foo").get().有关更多信息,请参阅jQuery文档,或亲自尝试.

$(function() {
    alert($("#foo").length);
});
Run Code Online (Sandbox Code Playgroud)