Jquery 正在查找基于数据属性而不是类的元素。-轨道

Jquery 正在查找基于数据属性而不是类的元素。-轨道,jquery,ruby-on-rails,custom-data-attribute,Jquery,Ruby On Rails,Custom Data Attribute,我目前有这个设置 对于HTML: <%= select_tag "Groups", options_from_collection_for_select(@groups, "id", "name", params[:filter]), class: "filter-groups", prompt: "All Groups" %> 现在我使用一个类来查找元素。但是我想改为使用数据属性。有人能帮我吗?仅供参考,我根本不需要该类,因此我想将其完全删除为data属性。一般来说,使用

我目前有这个设置

对于HTML:

<%= select_tag "Groups", options_from_collection_for_select(@groups, "id", "name", params[:filter]),
  class: "filter-groups",
  prompt: "All Groups"
%>

现在我使用一个类来查找元素。但是我想改为使用数据属性。有人能帮我吗?仅供参考,我根本不需要该类,因此我想将其完全删除为data属性。

一般来说,使用类从javascript查找页面上的元素是一种不好的做法,因此您希望将其更改为
data-
属性是正确的。 请使用以下各项:

<%= select_tag "Groups", options_from_collection_for_select(@groups, "id", "name", params[:filter]),
  data: { filter_groups: '' },
  prompt: 'All Groups'
%>
Rails将自动用破折号替换下划线


如果有帮助,请阅读以下内容:

一般来说,使用CSS类查找页面上的元素是一种不好的做法
不,不是。完全你是我上周看到的第二个胡说八道的人。不知道这个想法是从哪里来的,但它完全是假的。CSS是用来设计样式的。如果布局发生变化,使用CSS向DOM元素添加JS行为可能会产生意外的副作用。例如,不允许Designer更改CSS类,因为它们可能附加了JS,此外,通过读取HTML,您不会看到元素具有JS行为。我在文章中对此做了很好的解释,我不仅仅是在“胡说八道”。请详细说明你的想法并给出理由,而不是仅仅说那是“完全错误的”啊,这就是你误解的来源。班级!=CSS。它们用于对元素进行语义分组。这些分组不仅用于设置样式规则,还用于为这些元素分配公共功能逻辑。这就是为什么说“使用css类在页面上查找元素是不好的做法”这样的笼统说法是完全错误的,并且传播误导性信息,特别是在这样的网站上。我明白你的观点,我承认HTML类的定义。尽管如此,类仍然常用于样式。通过将JS行为分配给类,我有过太多不好的经历,无法区分用于样式的类和用于行为的类。这就是为什么我更喜欢采用一种约定,即类只用于行为的样式和数据属性,我强烈建议其他人这样做。
<%= select_tag "Groups", options_from_collection_for_select(@groups, "id", "name", params[:filter]),
  data: { filter_groups: '' },
  prompt: 'All Groups'
%>
<select name="Groups" id="Groups" class="filter-groups" data-filter-groups="">
$('[data-filter-groups]').on('change', ...)