Каждый раз, когда пользователь создает новое поле категории создается новый идентификатор для поляДинамический фильтр - Кодирование JQuery эффективно
category_advert
#userj_requiredskills_attributes_0_category_advert_id
#userj_requiredskills_attributes_1_category_advert_id
#userj_requiredskills_attributes_2_category_advert_id
category_advertskill
#userj_requiredskills_attributes_0_category_advertskill_id
#userj_requiredskills_attributes_1_category_advertskill_id
#userj_requiredskills_attributes_2_category_advertskill_id
мог один любезно посоветуйте мне, как эффективно кодировать мой JQuery, поэтому нет . Каков идентификатор кода - многие из них кс
html.erb
<%= f.collection_select :category_advert_id, CategoryAdvert.order(:name), :id, :name, {}, {class: 'category_advert'} %>
<%= f.grouped_collection_select :category_advertskill_id, CategoryAdvert.order(:name), :category_advertskills, :name, :id, :name, {prompt: "Select a category"}, {class: "category_advertskill"} %>
Jquery
$(document).ready(function() {
var category_advertskills;
category_advertskills = $('#userj_requiredskills_attributes_0_category_advertskill_id').html();
return $('#userj_requiredskills_attributes_0_category_advert_id').change(function() {
var category_advert, escaped_category_advert, options;
category_advert = $('#userj_requiredskills_attributes_0_category_advert_id :selected').text();
escaped_category_advert = category_advert.replace(/([ #;&,.+*~\':"!^$[\]()=>|\/@])/g, '\\$1');
options = $(category_advertskills).filter("optgroup[label='" + escaped_category_advert + "']").html();
if (options) {
$('#userj_requiredskills_attributes_0_category_advertskill_id').html(options);
return $('#userj_requiredskills_attributes_0_category_advertskill_id').parent().show();
} else {
$('#userj_requiredskills_attributes_0_category_advertskill_id').empty();
return $('#userj_requiredskills_attributes_0_category_advertskill_id').parent().hide();
}
});
});
$(document).ready(function() {
var category_advertskills;
category_advertskills = $('#userj_requiredskills_attributes_1_category_advertskill_id').html();
return $('#userj_requiredskills_attributes_01category_advert_id').change(function() {
var category_advert, escaped_category_advert, options;
category_advert = $('#userj_requiredskills_attributes_1_category_advert_id :selected').text();
escaped_category_advert = category_advert.replace(/([ #;&,.+*~\':"!^$[\]()=>|\/@])/g, '\\$1');
options = $(category_advertskills).filter("optgroup[label='" + escaped_category_advert + "']").html();
if (options) {
$('#userj_requiredskills_attributes_1_category_advertskill_id').html(options);
return $('#userj_requiredskills_attributes_1_category_advertskill_id').parent().show();
} else {
$('#userj_requiredskills_attributes_1_category_advertskill_id').empty();
return $('#userj_requiredskills_attributes_1_category_advertskill_id').parent().hide();
}
});
});
Сообщите вам html-код и что вы хотите? – msvairam
Начните с использования переменных, чтобы удерживать эти двойные селектора * mile-long * вместо того, чтобы повторять один и тот же селектор снова и снова. '$ (this)' внутри события 'change' также будет тем же самым элементом, который вы продолжаете ссылаться. Затем вы можете использовать селектор 'start-with' для совпадений. –