根据数据属性而不是类查找元素。 -滑轨

时间:2018-10-23 13:01:25

标签: 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"
%>

对于jquery:

$(document).on('ready page:load', function() {
  $('.filter-groups').on('change', function() {
    window.location.replace('/people?filter='+this.value);
  });
});

所以,现在我正在使用一个类来查找元素。但是我想更改为使用数据属性。谁能帮我这个?仅供参考,我完全不需要该类,因此我想完全删除data属性。

1 个答案:

答案 0 :(得分:1)

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

<%= select_tag "Groups", options_from_collection_for_select(@groups, "id", "name", params[:filter]),
  data: { filter_groups: '' },
  prompt: 'All Groups'
%>

这将生成以下HTML代码:

<select name="Groups" id="Groups" class="filter-groups" data-filter-groups="">

在jquery中,您可以使用:

$('[data-filter-groups]').on('change', ...)

Rails会自动用下划线替换下划线。

如果有帮助,还请阅读以下内容:https://medium.com/@coorasse/how-to-access-your-dom-from-javascript-77faa762c288