【问题标题】:Use same id for any element in two different views of a controller [duplicate]对控制器的两个不同视图中的任何元素使用相同的 id [重复]
【发布时间】:2016-01-06 11:40:30
【问题描述】:

我很好奇,我们能否在同一个控制器的两个不同视图(在任何框架中)中使用任何元素的相同 id,例如 div

注意 _ 当我为 div 分配动态值时,它正在工作。任何人都可以解释一下,为什么它会起作用,因为据我所知它不起作用。我正在使用Ruby on Rails

评论:我不是要求在控制器的一个视图上使用重复的 id,而是要求有两个不同的页面但相同控制器和相同的js 文件

【问题讨论】:

    标签: javascript jquery ruby-on-rails ruby-on-rails-4


    【解决方案1】:

    这不是不可能的,即使它不会引发错误或任何事情,对不同的元素使用相同的 ID 仍然是错误的。 ID 应该是唯一的,但您必须确保保持这种状态。 RoR 与此无关。

    如果您需要在某些 JS 代码中使用标识符,我建议创建一个像 "my-model-#{id}"(虽然不是 CSS 友好)这样的 id,其中只有 id 是动态更改的。或者在元素上使用一些数据属性,比如data-my-unique-id="#{id}"

    对我来说,我会保留一个数据属性,ID 它在 CSS 上是可访问的,这就是为什么它应该有一个描述性的名称并保持这样,避免动态值。

    【讨论】:

      【解决方案2】:

      之所以有效,是因为每个视图本质上都是一个不同的 html 文档。 html 元素的 ID 在文档中应该是唯一的。但是如果您需要为不同视图中的多个元素使用相同的 ID,更好的方法是使用类。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-03-25
        • 2012-12-14
        • 1970-01-01
        • 1970-01-01
        • 2021-04-05
        相关资源
        最近更新 更多