Ну, если это была моя страница, я бы удостоверился, что все эти элементы разделяют класс, чтобы я не хотел, чтобы нуждался в. Тем не менее, вы можете сделать это:
переменная
for (var i = 1; i <= 4; ++i) $('.flip' + i).click((function(i) {
return function() { $('.panel' + i).slideToggle('slow'); };
})(i));
петля должна быть в ловушке закрытия, так что каждый «щелчок» обработчик ссылается на соответствующее значение. Опять же, я действительно не сделал бы этого так. Я бы добавил, что элементы «flip» совместно используют класс, а затем сохраняют этот индекс (неявная ссылка на соответствующую «панель») в отдельном элементе класса или в атрибуте «data-». Тогда обработчик мог бы найти панель, используя это значение.
редактировать — как хак, вы могли бы использовать тот факт, что имена классов соответствующих элементов являются оба вида «somethingNN», где «NN» является цифровой частью. Вы можете сдирать номер, а затем добавить его в «панель»:
for (var i = 1; i <= 4; ++i) $('.flip' + i).click(function() {
var panelClass = this.className.replace(/.*\bflip(\d+).*/, "panel$1");
$(panelClass).slideToggle('slow');
});
Позвольте мне добавить, что количество элементов неизвестно, а диапазон не обязательно связан с flip1-flip4. – asunrey