• Как сделать перебор свойств объекта с последующим вызовом функции?

    @AndreiShev Автор вопроса
    я знаю про сравнение строк, знаю про конструкцию switсh case, про циклы for in, for each. Я пришел сюда за советом, поскольку сам запутался с решением, ведь я уже пытался решить проблему сам. В комментариях к ответу ниже, я получил нужный мне ответ, не смотря на то, что сперва вроде как отмел предложенное решение. Ошибаются все, как новички, так и мастера своего дела, зачем обращать внимание на мою компетентность, если можно просто дать ответ или полезную информацию?
  • Как сделать перебор свойств объекта с последующим вызовом функции?

    @AndreiShev Автор вопроса
    хотя сейчас немного другая ситуация, вряд ли будет множество типов ключей, от силы 10 штук, так что можно попробовать
  • Как сделать перебор свойств объекта с последующим вызовом функции?

    @AndreiShev Автор вопроса
    функция для каждого ключа должна быть своя, в качестве примера:
    для ключа type функция validationType;
    для ключа pattern функция validationPattern и тд.
  • Как сделать перебор свойств объекта с последующим вызовом функции?

    @AndreiShev Автор вопроса
    конструкцию свич кейз я использовал, но загвостка в том, что по условиию у меня может быть и 100 полей в валидации, поэтому от этой конструкции пришлось отказаться в пользу более быстрого и качественного решения
  • Как удалить span в теле div?

    @AndreiShev Автор вопроса
    а что означает строка 'div.your-class > span'?
  • Как удалить span в теле div?

    @AndreiShev Автор вопроса
    я делаю валидацию формы на нативном js. при ошибке валидации запускается функция у которой в параметрах есть ссылка на input и текст ошибки либо null, вместо текста ошибки. если текст ошибки есть, то добавляется span с текстом ошибки, если вместо текста ошибки указан null, то надо удалить span. с чем у меня и возникли проблемы
  • Как задать в параметр функции ссылку на элемент DOM?

    @AndreiShev Автор вопроса
    решил удостовериться, не верилось, что все так просто
  • Как мне центрирование изображения в слайдере с разными длинами картинок?

    @AndreiShev Автор вопроса
    JRK_DV, я написал вот такой код, он частично работает. трудности вызывают конечные условия

    slider( "listImg", "nextSlide", "prevSlide", "slide", "slider" );
    
    
    function slider( mainContainerClass, mainNextButton, mainPrevButton, mainImages, mainSliderContainer )
    {
    	var sliderLeft = document.getElementById( mainNextButton );
    	var sliderRight = document.getElementById( mainPrevButton );
    	var imgBox = document.getElementById( mainContainerClass );
    	var sliderBoxWidth = document.getElementById( mainSliderContainer );
    	var list = [0]; // в листе хранить накопительную сумму. Хранится
    	var index = 0; 
    	var width = 0; 
    	var IMGBOXWIDTH = 1000; 
    	
    
    	if( imgBox == null ) {
    		//	выкидываем ошибку и завершаем код
    		console.log( "Произошла ошибка. imgBox == null. Указан неверный Id элемента или неверно получен элемент из DOM" );
    		return;
    	}
    
    
    	if ( sliderLeft == null ) {
    		console.log( "Произошла ошибка. sliderLeft == null. Указан неверный Id элемента или неверно получен элемент из DOM" );
    		return;
    	}
    
    
    	if ( sliderRight == null ) {
    		console.log( "Произошла ошибка. sliderRigth == null. Указан неверный Id элемента или неверно получен элемент из DOM" );
    		return;
    	}
    
    	var images = imgBox.getElementsByClassName( mainImages );
    
    	if ( images.length == 0 ) {
    		console.log( "Произошла ошибка. images == null. Указан неверный Id элемента или неверно получен элемент из DOM" );
    		return;
    	}
    
    	if( sliderBoxWidth == null ) {
    		//	выкидываем ошибку и завершаем код
    		console.log( "Произошла ошибка. sliderBox == null. Указан неверный Id элемента или неверно получен элемент из DOM" );
    		return;
    	} 
    	
    	//imgBox.style.transform = 'translateX(' + ( -images[0].clientWidth ) + 'px)'; 
    	//var imgBoxWidth = sliderBoxWidth.offsetWidth;
    			
    	// здесь этот цикл добавлен именно здесь сугубо в исследовательских целях, чтобы в консоле просматривать все изменения
    	for (var i = 0; i < images.length; i++) {			
    		width = images[i].clientWidth;
    		list.push(width);
    		}
    		
    	var left = 0;
    
    
    	sliderLeft.onclick = function() {
    		/*if ( конечные условия ) {
    			переставить картинку аппендом
    			заново рассчитать массив картинок
    			зацентрировать
    		}*/
    		index++;
    		
    		//imgBox.appendChild( imgBox.children[ 0 ] );
    		left = left - list[index];
    		sliderGo();
    
    		
    				
    	}
    	
    	sliderRight.onclick = function() {
    		
       		//imgBox.insertBefore( imgBox.children[ images.length - 1 ], imgBox.children[ 0 ] );
    		
    		left = left + list[index];
    		index--;
       		sliderGo();
    
    	}
    
    	function sliderGo() {
    		var pictureSum = 0;
    		var pictureNamber = 0;
    
    		for ( var i = index+1; i <= images.length; i++) {
    			pictureSum += list[i]; // сумма картинок вместе с следующей обрезанной
    			pictureNamber = i; // номер обрезанной картинки
    			
    			if ( pictureSum >= IMGBOXWIDTH ) {
    				// написал много логов, чтобы контролировать все на этапе разработки, пока не убираю
    				var fullImgWidth = pictureSum - list[pictureNamber]; // сумма целых картинок
    				var step = (( IMGBOXWIDTH - fullImgWidth ) / 2 ); // необходимый отступ
    				imgBox.style.left = left + step  + "px";
    				break;
    			}
    		}
    	}
    }