我目前有此设置。
对于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属性。
答案 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