Установка двух приращений в цикле, который останавливается на определенном числе - PullRequest
0 голосов
/ 30 апреля 2018

У меня есть функция jQuery, которую мне нужно перебрать с двумя переменными, которые мне нужно увеличить до определенного числа. Это функция:

var i = 1;
var x = 13;

$('input#question14_' + i).change(function() {
  if (this.checked) {
    $('.quiz_section.question-section-id-' + x).css('display', 'block')
  } else {
    $('.quiz_section.question-section-id-' + x).css('display', 'none')
  }
});

Мне нужно i, чтобы перейти к 15 и x, чтобы перейти к 28, а затем остановиться. Очевидно, я не хочу выписывать такую ​​функцию для каждого числа, но я не могу понять, как увеличить и то, и другое с циклом.

1 Ответ

0 голосов
/ 30 апреля 2018

В идеале я бы сказал, что вместо этого попробуйте использовать элементы данных, чтобы у вас был один обработчик событий. Таким образом, каждый элемент может иметь data-id="1" и data-other="13", на которые вы можете ссылаться. Однако вы можете извлечь и сгенерировать x из идентификатора.

//find all the elements who's id begins with question14_
$('input[id^="question14_"]').change(function() {
  //get the number after the _ and add 12
  var x = parseInt(this.id.split('_')[1], 10) + 12;
  
  if (this.checked) {
    $('.quiz_section.question-section-id-' + x).css('display', 'block')
  } else {
    $('.quiz_section.question-section-id-' + x).css('display', 'none')
  }
});
...