Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   Применить функцию к одному элементу (https://javascript.ru/forum/jquery/76134-primenit-funkciyu-k-odnomu-ehlementu.html)

kotekiller 08.12.2018 04:34

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

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

$('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);
  })
}

j0hnik 08.12.2018 04:49

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);

  }

kotekiller 08.12.2018 04:52

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


Часовой пояс GMT +3, время: 23:03.