Хочу на js
сравнить два массива и выстроить select
и выделить все option
которые соответсвуют условию. Вот код:
var data = '{"ListFieldsForGroup":[{"id":"12","type":"text","placeholder":"\u0426\u0435\u043d\u0430"},{"id":"13","type":"select","placeholder":"\u041a\u043e\u043c\u043d\u0430\u0442\u044b"},{"id":"14","type":"select","placeholder":"\u042d\u0442\u0430\u0436"},{"id":"19","type":"radio","placeholder":"\u0421\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0435 \u0434\u043e\u043c\u0430"}],"FieldsForCategory":[{"id_field":"13"},{"id_field":"19"}]}';
var sel;
var newData = JSON.parse(data);
$.each(newData.ListFieldsForGroup, function(index, lffg) {
$.each(newData.FieldsForCategory, function(i, ffg) {
if (lffg.id == ffg.id_field) {
sel = 'selected';
} else {
sel = '';
}
});
$('#advertFields').append('<option value="' + lffg.id + '" ' + sel + '>' + lffg.placeholder + ' - (' + lffg.type + ')</option>');
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<select id="advertFields"></select>
Проблема в том, что данный код выделяет либо только один option
, либо все, но не те которые удовлетворяют условию.
$.each(newData.ListFieldsForGroup, function(index, lffg) {
sel = ''; // !!!
$.each(newData.FieldsForCategory, function(i, ffg) {
if(lffg.id == ffg.id_field) {
sel = 'selected';
}
});
$('#advertFields').append('<option value="' + lffg.id + '" '+sel+'>' + lffg.placeholder + ' - ('+lffg.type+')</option>');
});
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Какие существуют виды рекламных бордов и как выбрать подходящий?
Как сделать глобальное глобальные ошибки в Vue (через Vuex)?