Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   Замена значений ячеек таблицы. (https://javascript.ru/forum/events/2692-zamena-znachenijj-yacheek-tablicy.html)

Zibba 03.02.2009 17:36

madgals,
Да я напортачил еще с логикой, если сохранять значения ячеек таблицы в самой функции замена, то будет не правильно (логически). Поэтому лучше делайте это перед вызовом функции, или сохраните значения глобально по window.onload.

madgals 03.02.2009 17:45

Ну что же. попробую.

x-yuri 03.02.2009 17:49

значения можно в функции хранить (типа статические переменные)
arguments.callee.old = []
var old = arguments.callee.old;
while(i < tr.length){
    // запишите в него значения из ячеек таблицы
    var td = tr[i].getElementsByTagName('td');
    old[i] = td[3].innerHTML;
    i++;
}

Zibba 03.02.2009 18:02

Кстати да, способ предложенный x-yuri будет даже лучше и по производительности и вообще по элегантности :)

to x-yuri,
а конструкция arguments.callee это что то на подобие static в СИ!? только для данного скопа да!?

x-yuri 03.02.2009 18:09

если функция глобальная (func), то
arguments.callee === func

это я так, скорее всего автор может просто обойтись названием функции

Kolyaj 03.02.2009 18:16

Цитата:

Сообщение от Zibba
а конструкция arguments.callee это что то на подобие static в СИ!?

Это ссылка на функцию, внутри которой находимся.

madgals 04.02.2009 10:15

Цитата:

Сообщение от x-yuri (Сообщение 11948)
значения можно в функции хранить (типа статические переменные)
arguments.callee.old = []
var old = arguments.callee.old;
while(i < tr.length){
    // запишите в него значения из ячеек таблицы
    var td = tr[i].getElementsByTagName('td');
    old[i] = td[3].innerHTML;
    i++;
}

Этот вариант внутри функции замена тоже не работает. Потому вывел определения массива old в конец страницы, а в функцию zamena просто передал этот массив. В итоге все работает как надо ) всем спс большое за помощь )

P.S. Такая конструкция arguments.callee.old = [] у меня ни в одном браузере не заработала. надо arguments.callee.old = new Array()

Kolyaj 04.02.2009 10:19

Цитата:

Сообщение от madgals
P.S. Такая конструкция arguments.callee.old = [] у меня ни в одном браузере не заработала. надо arguments.callee.old = new Array()

Это одно и то же.

madgals 04.02.2009 10:31

я понимаю, что одно и тоже. Но, увы, не работает.

x-yuri 04.02.2009 11:18

Цитата:

я понимаю, что одно и тоже. Но, увы, не работает.
Цитата:

При unchek'е происходит новый вызов функции и ввод туда новых значений. в итоге ничего не получается.
очень описательно
http://getfirebug.com/


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