【问题标题】:jQuery selector is getting duplicated elementsjQuery 选择器正在获取重复的元素
【发布时间】:2017-04-14 23:07:16
【问题描述】:

我遇到了 jQuery 选择器的问题。我这样称呼:

var keysContainerRows = $(".prockeyscontainer").find(".row");
console.log(keysContainerRows);

这就是我得到的:

Selector 返回两个类为 row 的元素,但只有一个类为 row 的元素在类为 prockeyscontainer 的元素中。这是 HTML:

这里发生了什么?提前致谢。

【问题讨论】:

  • prockeyscontainer 班有多少人?
  • 听起来不可能。在现场启动本地调试器并检查document.querySelectorAll('.prockeyscontainer').length;
  • 页面上是否存在多个类.prockeyscontainer的元素?
  • @jAndy 我正在执行那句话,我得到 2,这解释了意外的返回结果,但我找不到 .prockeyscontainer 类的第二个元素!关于如何找到它的任何想法? HTML 代码中只有一个。
  • 您可以在 DOM 检查器中搜索 HTML

标签: javascript jquery html jquery-selectors


【解决方案1】:

发现问题。我以这种方式使用 jQuery 动态添加 .prockeyscontainer

$("<div class='prockeyscontainer'></div>").prependTo(el_container);

el_container 对象包含以下内容:

var el_container = $(data).appendTo($("body"));

data 对象包含以下内容:

<head xmlns="http://www.w3.org/1999/html">
    <link rel="stylesheet" href="../style/index.css"/>
</head>

<div class='addkeysdialogv2'>
  . . . . . (Content) . . . . .
</div>

所以.prockeyscontainer 元素被添加到head 元素和addkeysdialogv2 元素之前。我猜el_container 是由appendTo 函数返回的两个元素(headdiv)的array。因此,当我添加一个新元素时:.prockeyscontainerel_container 它被应用于两个数组元素。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-12-07
    • 2023-03-20
    • 1970-01-01
    • 2011-08-08
    • 1970-01-01
    • 2020-02-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多