根据数据属性查找元素而不是 class。 - Rails
Finding element based on data attribute not class. - Rails
我目前有这个设置。
对于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);
});
});
所以,现在我正在使用 class 来查找元素。但我想改为使用数据属性。谁能帮我这个?仅供参考,我根本不需要 class 所以我想为数据属性完全删除它。
通常,使用 类 从 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
我目前有这个设置。
对于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);
});
});
所以,现在我正在使用 class 来查找元素。但我想改为使用数据属性。谁能帮我这个?仅供参考,我根本不需要 class 所以我想为数据属性完全删除它。
通常,使用 类 从 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