Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 08.12.2018, 04:34
Новичок на форуме
Отправить личное сообщение для kotekiller Посмотреть профиль Найти все сообщения от kotekiller
 
Регистрация: 14.12.2016
Сообщений: 8

Применить функцию к одному элементу
Здравствуйте.

Подскажите как применить функцию к одному элементу. Сейчас скрипт выглядит так:

$('input[name='+id+']').each(function(){
...
}


Но очевидно что инпут такой на странице только один. Не хочу говнокодить, поэтому прошу вашей помощи.

В гугле все перерыл, через get() не работает, через find() тоже.

Ну и полный скрипт на всякий случай приложу. Опыта очень мало, сильно тапками не кидайте.

// Меняем значение input кнопками + и -
function change_quantity(id, quantity) {
  var current = parseInt($('input[name='+id+']').val());
  if (isNaN(current)) current = 0;
  $('input[name='+id+']').val(current+quantity);
  recalc(id);
}

// Валидация введенного значения
function recalc(id) {
  $('input[name='+id+']').each(function(){

    var current = $(this).val();
    var min = 0;
    var step = $(this).attr('step');
    var max = $(this).attr('max');
    var avalible = $('#v-sin > input').prop('checked');

    // Округляем кратно step (количества товаров в упаковке)
    current = Math.ceil(current/step)*step;

    if (current < 0) current = 0;
    if (current > max && avalible) current = max;

    $(this).val(current);
  })
}
Ответить с цитированием
  #2 (permalink)  
Старый 08.12.2018, 04:49
Аватар для j0hnik
Профессор
Отправить личное сообщение для j0hnik Посмотреть профиль Найти все сообщения от j0hnik
 
Регистрация: 01.12.2016
Сообщений: 3,650

function recalc(id) {
	var el = $('input[name='+id+']');
	var current = el.val();
	var min = 0;
	var step = el.attr('step');
	var max = el.attr('max');
	var avalible = $('#v-sin > input').prop('checked');

    // Округляем кратно step (количества товаров в упаковке)
    current = Math.ceil(current/step)*step;

    if (current < 0) current = 0;
    if (current > max && avalible) current = max;

    el.val(current);

  }
Ответить с цитированием
  #3 (permalink)  
Старый 08.12.2018, 04:52
Новичок на форуме
Отправить личное сообщение для kotekiller Посмотреть профиль Найти все сообщения от kotekiller
 
Регистрация: 14.12.2016
Сообщений: 8

ооооо, вот это я тупой конечно...
огромное вам спасибо
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Обращение к одному элементу класса destroy3r jQuery 4 04.02.2018 01:28
Как применить свойства css к соседнему элементу thrifty (X)HTML/CSS 2 10.01.2018 17:01
Клик по одному элементу добавление класса у второго элемента, кликаем по третьему эле aleksandr8i Общие вопросы Javascript 1 24.09.2015 11:25
JQuery два действия к одному элементу koctul Events/DOM/Window 7 05.04.2015 14:54
Применить css к DOM элементу через n-колено Sherminator Events/DOM/Window 2 14.02.2013 21:37