【问题标题】:How do you delete divs that have the same ids but their dispaly properties are different如何删除 id 相同但显示属性不同的 div
【发布时间】:2010-04-22 02:57:58
【问题描述】:

我有两个具有相同 ID 的 div,但一个具有 display=none,另一个具有 display=block 我想用 display='none' 删除那个 我正在使用 javascript 框架 原型

【问题讨论】:

  • 您可能应该将 id 切换到 classes。 ID 应该只用于唯一元素(即只有一个)。

标签: javascript


【解决方案1】:

你不能有两个具有相同 ID 的控件,这是无效的。您应该重写您的代码,使 ID 不一样。

【讨论】:

  • 我正在通过 ajax 生成 html,所以它可能
  • @vakas,不管有没有可能,都是。它会导致各种问题,例如您现在遇到的问题。您需要更改用于生成 html 的任何内容,以便它不会创建具有相同 ID 的两个元素。
  • 不,不是。如果您的代码添加了具有相同 ID 的元素,那么您应该修复它,因为它是无效的。
  • 这确实是“建议”但不是答案,您应该投票赞成@Pim Jager 的答案,它是唯一提供建议和解决方案的人。
  • @clarke78 - 我认为响应者正试图教导保持 ID 唯一性的重要性。可以说,这个概念非常重要,以至于对所提出问题的回答是没有实际意义的(并且可能具有误导性)。
【解决方案2】:

您应该改用 div 类而不是 id 类。 ID 是唯一标识符,因此是唯一的,一个页面每个 id 只能包含一个元素(一个 id 不能有多个元素)。

如果你给了 div 类而不是 id,你可以这样做:

$$(".<your_class_here>").reject(Element.visible).each(Element.remove);

我的原型有点生锈,但我认为应该这样做。

编辑:忘了你不能直接按 CSS 属性过滤。

【讨论】:

  • 我正在尝试这个 var temp=$$(".the_div[display='none']");警报(温度。长度);但什么都不提醒
    它的测试
  • @vakas:您不仅在重复使用id​s,而且您的id 甚至都不是有效名称(您不能以数字开头)。 说真的,你需要解决这个问题,否则你会遇到很多奇怪的浏览器错误行为。
【解决方案3】:

您不应该有两个具有相同 ID 的元素。你应该使用类。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-02-15
    • 2020-10-07
    • 1970-01-01
    • 2022-01-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多