2010-07-15 3 views
1

Во-первых, Есть ли способ для меня поставить объявления переменных в цикл for?Как написать следующий код как цикл for?

E.g. следующее:

var origh1 = $('#candidates img:eq(0)').height(); 
var origh2 = $('#candidates img:eq(1)').height(); 
var origh3 = $('#candidates img:eq(2)').height(); 
var origh4 = $('#candidates img:eq(3)').height(); 
var thumb1h = $('#candidates img:eq(0)').height()*0.20; 
var thumb2h = $('#candidates img:eq(1)').height()*0.20; 
var thumb3h = $('#candidates img:eq(2)').height()*0.20; 
var thumb4h = $('#candidates img:eq(3)').height()*0.20; 

Затем, используя эти переменные, я хотел бы, чтобы следующее в цикле for. Естественно, 'origh1' должен равняться img: eq (i), где i = 0. Поэтому я предполагаю, что если origh1 были в цикле, это было бы похоже на origh (i + 1).

$('#candidates img:eq(0)').fadeIn('normal').delay(300).animate({ height : origh1}, 1200, 'easeInQuad'); 
$('#candidates img:eq(1)').fadeIn('normal').delay(300).animate({ height : origh2}, 1200, 'easeInQuad'); 
$('#candidates img:eq(2)').fadeIn('normal').delay(300).animate({ height : origh3}, 1200, 'easeInQuad'); 
$('#candidates img:eq(3)').fadeIn('normal').delay(300).animate({ height : origh4}, 1200, 'easeInQuad'); 

Спасибо :)

ответ

2

Для каждого будет делать эту работу:

$('#candidates img').each(function() { 
var origh = $(this).height(); 
$(this).fadeIn('normal').delay(300).animate({ height : origh}, 1200, 'easeInQuad'); 
}); 

перебрать первых 4 изменить его на:

$('#candidates img:lt(5)').each(function() { 
    var origh = $(this).height(); 
    $(this).fadeIn('normal').delay(300).animate({ height : origh}, 1200, 'easeInQuad'); 
    }); 
+0

http://w3schools.com/jsref/jsref_obj_array.asp ему также нужно будет это знать. – Incognito

+0

Hrmm .... проблема с этим в том, что он, кажется, не перебирает через img: eq (0), чтобы сказать img: eq (14). И последующие origh1 - origh15. Если бы я хотел получить доступ к origh5, как бы я это сделал ... на основе этого предложения? – marcamillion

+0

Правильно, извините, просто скопируйте это без дополнительной мысли. –

0

Вы можете поместить результаты в массив, а затем сделать цикл for, заполнив массив ... Я думаю, вам понадобится 2 массива, один для origh и thumbh.

+0

Есть пример фактического кода?Я не полностью знаком с синтаксисом jQuery - просто учись :) – marcamillion

0

Я что-то пропустил? Или вам нужны только первые 4 img?

$('#candidates img').fadeIn('normal').delay(300).animate({ height : $(this).height}, 1200, 'easeInQuad'); 
+0

Я хочу любое количество изображений. Я просто использовал eq (0 - 3) в качестве примера. Предположим, что мне нужны первые 20 или 30 изображений. Не должно быть предела. Я бы скорее изменил цикл for и попросил его сделать это несколько раз, чем мне пришлось переписать одну строку кода (вручную) 20 раз для 20 изображений. – marcamillion

+0

О, хорошо, этот селектор доставит вам все imgs. – dotjoe

+0

Но это ничего не делает для переменных. – marcamillion

Смежные вопросы