对控制器的两个不同视图中的任何元素使用相同的id

时间:2016-01-06 11:40:30

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

我很好奇我们可以在同一个控制器的两个不同视图(在任何框架中)中使用id的任何元素div

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

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

2 个答案:

答案 0 :(得分:1)

这并非不可能,即使它不会引起错误,也不会为不同的元素使用相同的ID。 ID应该是唯一的,但您必须确保保持这种方式。 RoR无所事事。

如果您需要在某些JS代码中使用标识符,我建议创建一个类似"my-model-#{id}"的ID(尽管不是CSS友好的),其中只有动态更改的id。或者在data-my-unique-id="#{id}"

等元素上使用某些数据属性

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

答案 1 :(得分:1)

它的工作原理是因为每个视图本质上都是一个不同的html文档。 html元素的ID在文档中应该是唯一的。但是如果你需要在不同视图中对多个元素使用相同的ID,那么更好的方法是使用类。