Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   While как условные выражения (https://javascript.ru/forum/misc/10267-while-kak-uslovnye-vyrazheniya.html)

Latro 25.06.2010 12:56

While как условные выражения
 
можете мне объяснить как с ними работать чтобы использовать как условные выражения и как цикл, просто много где такое видел...
ну и собственно вот почему я создавал эту тему:
var p=document,
t=p.all||p.getElementsByTagName('*'),
i=0;
while(d=t[i++])if(d.className=='myclass')d.style.color='red'

Как можно сократить данную запись?

Kolyaj 25.06.2010 13:01

Для сокращения есть обфускаторы, не корёжьте код, вам его читать потом.

Latro 25.06.2010 13:03

Kolyaj, дело в том, что while можно использовать как условки, и поэтому мне интересно как так сделать чтобы не писать условку дополнительно...

exec 25.06.2010 13:14

i = t.length;
while(i--)…

Kolyaj 25.06.2010 13:14

Я вообще не понимаю о чём вы. while выполняется пока выражение в скобках истинно. О каких условках вы говорите не понятно.

Latro 25.06.2010 13:18

exec, это просто отсчёт с конца... это давно мне известно и понятно...
Kolyaj, я имею ввиду, возможно ли сделать, что бы while в моём варианте просматривая все теги, заодно проверял, равен ли их класс указанному, но сделать это именно через while, чтобы не писать этот назойлевый if

Kolyaj 25.06.2010 13:20

Цитата:

Сообщение от Latro
возможно ли сделать, что бы while в моём варианте просматривая все теги, заодно проверял, равен ли их класс указанному

Очевидно, нет.

exec 25.06.2010 13:21

Latro, можно использовать метод getElementsByClassName, но он встроен не во все браузеры.

Latro 25.06.2010 13:22

exec, ну, еслибы я не знал об этом, то я не спрашивал, так значит вы не знаете каких либо вариантов сделать такой поиск?

Gvozd 25.06.2010 13:26

Latro,
вы некомпетентны, глупы, и настойчивы.

exec 25.06.2010 13:27

Latro, ну почему не знаем. Его просто нету.

Kolyaj 25.06.2010 13:29

Latro,
вы семантику цикла while понимаете? Как только условие ложно, цикл заканчивается.

Latro 25.06.2010 13:30

Gvozd, я настойчив, т.к. видел подобное в коде у людей, и мне интересно знать как это сделать! А если вы не можете написать никаких вариантов, а только грубите, то я глуп на столько же, на сколько и вы!
exec, ну ладно, спс, буду экспериментировать!)

Riim 25.06.2010 13:33

var p=document, 
t=p.all||p.getElementsByTagName('*'), 
i=0; 
while(d=t[i++] && (d.className=='myclass' ? d.style.color='red' : 1));

оно?

Latro 25.06.2010 13:36

Riim, неа, даже если заменить d на t[i++], то он задаёт цвет только последнему...(

Kolyaj 25.06.2010 13:36

Riim,
Какой кошмар :)

Riim 25.06.2010 13:45

Скобки забыл:
var p=document,
t=p.all||p.getElementsByTagName('*'),
i=0, d;
while((d=t[i++]) && (d.className=='myclass' ? d.style.color='red' : 1));


Цитата:

Сообщение от Kolyaj
Какой кошмар

это да.

Latro 25.06.2010 13:50

Riim, не, ну вообще работает, но что-то запредельное, в массив добавить не получается...
В общем спасибо, буду разбираться)

PeaceCoder 25.06.2010 13:58

while ((d=t[i++]||{}).className=='myclass'&&(d.style.color='red') || d.style);


можно еще так, но это уже совсем издевательство над тем кто это будет читать =)

Gvozd 25.06.2010 14:28

Цитата:

Сообщение от Latro
видел подобное в коде у людей, и мне интересно знать как это сделать!

если видели, то в чем проблема повторить?

в любом случае не все что вы видели у кого-то стоит повторять

Latro 25.06.2010 14:33

Gvozd, когда пробывал, оно просто напросто не работало, вот я и решил узнать по подробнее об использование данного цикла как условку

Gvozd 25.06.2010 14:48

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

PS пожалуйста перестаньте применять слово "условка".
такого слова нету в нашем языке

Latro 27.06.2010 07:28

Gvozd, я уже во всём разобрался, а как мне тогда называть if else

Gvozd 27.06.2010 14:53

Цитата:

Сообщение от Latro
а как мне тогда называть if else

также, как их называют все люди - условия, условные выражения, операторы ветвление


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