var tempActiveIds; jq(document).ready(function () { if( typeof activeIds !== "undefined") { var selectFieldId = activeIds['selectId']; jq('#field' + selectFieldId).change(function () { setActiveFields(); }); setActiveFields(); } }); function setActiveFields() { var selectFieldId = activeIds['selectId']; var value = jq('#field'+selectFieldId+' option:selected').val(); var activeIdsArray = activeIds[value]; jq('[class^=field_row]').removeClass('active').addClass('off'); var fieldId = ''; for (var i in activeIdsArray) { fieldId = '.field_row_' + activeIdsArray[i]; jq(fieldId).removeClass('off').addClass('active'); } } function getActiveIds() { tempActiveIds = {}; var elements = jq('[id^=field]'); var fieldId = ''; var elementType = ''; var selectId = ''; var length; var idsArray = []; var idsTypes = {}; var idsCnt = 0; var title; jq.each(elements, function () { fieldId = this.id; length = fieldId.length; fieldId = parseInt(fieldId.substring(5, length)) elementType = this.nodeName; idsArray.push(fieldId); title = jq('.field_title_' + fieldId).clone().children().remove().end().text(); idsTypes[idsCnt] = {'fieldId':fieldId,'title':title}; if (elementType === 'SELECT' && selectId === '') { selectId = fieldId; jq("#field" + fieldId + " > option").each(function () { tempActiveIds[this.value] = []; }); } idsCnt++; }); for(var i in tempActiveIds) { tempActiveIds[i]=idsArray; } tempActiveIds['selectId'] = selectId; tempActiveIds['types'] = idsTypes; console.log(JSON.stringify(tempActiveIds,null, "\t")); }