【问题标题】:$(.class).empty always missing one element$(.class).empty 总是缺少一个元素
【发布时间】:2012-09-12 06:11:28
【问题描述】:

enter code herejquery.empty() 有点问题。 我有一些 Html Div,如下所示:

<div id="Description_Error" class="ui-helper-hidden errorMessage"></div>
    <div id="Order_Error" class="ui-helper-hidden errorMessage"></div>
    <div id="ColorHex_Error" class="ui-helper-hidden errorMessage"></div>

这些 Div 在运行时会被一些 Uls 和 Lis 填充。它们基本上用于显示错误。现在,我正在清除它在进行 POST 之前显示的所有错误。

我用

$('ui-helper-hidden errorMessage').empty();

为此。现在,我适合显示所有三个错误,然后它将消除两个 bue 留下一个。如果它当时只显示一个错误,那么它根本不会被删除。我不知道为什么班级选择决定总是留下一个元素。无论如何,我试图在 Jsfiddler 上复制相同的行为,但效果很好。我无法找到关于我的代码可能有什么问题的线索。有什么建议吗?

这是适用于所有文件的提琴手链接。只是我的 HTML 代码不能正常工作:

http://jsfiddle.net/g55Rs/3/

【问题讨论】:

  • 删除空格。 $('.ui-helper-hidden.errorMessage').empty();
  • 这将是两个类,而不是一个带空格的类?
  • 确保留下的 div 拼写正确并且与类选择器完全匹配。
  • 好吧,我将类名更改为简单的“xyz”和相同的行为。现在留下的元素是同一个类选择器。实际上,它并非一直都是同一个元素。以先到者为准。例如,如果它一个接一个地显示Description_ErrorColorHex_Error,那么它将错过Description_Error,但是如果我颠倒顺序,那么另一个将会丢失。

标签: javascript jquery html web


【解决方案1】:

您既不是指类也不是元素标识符。

$('ui-helper-hidden errorMessage').empty();

引用类使用.,使用元素标识符使用#

在您的情况下,这将清空所有 div:

// Selecting all elements which have both classes
$('.ui-helper-hidden.errorMessage').empty();

DEMO - 清空所有具有两个类的元素

我还在DEMO中添加了一些只有一个或另一个类的元素,以表明它们不受影响。

【讨论】:

  • 很抱歉我的问题很匆忙,但在我的代码中我使用的是.,但它没有帮助。
  • @Californicated:您能否将实际使用的脚本添加到您的帖子中,并确保呈现的 HTML 是您发布的那个。看起来很奇怪,鉴于您发布的 HTML,选择器不起作用。
  • 对不起。我错了。是的,您的两个类示例有效且有意义。我应该一次只与一个班级一起工作,这应该很容易解决我的问题。谢谢:)。
猜你喜欢
  • 1970-01-01
  • 2016-09-23
  • 1970-01-01
  • 2021-03-20
  • 1970-01-01
  • 1970-01-01
  • 2012-04-24
  • 2013-11-01
  • 1970-01-01
相关资源
最近更新 更多