Модераторы: Sardar, Aliance
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Массив не сохраняет правильно объекты, Или я неправильно их записываю??? 
:(
    Опции темы
GIK
Дата 8.10.2006, 19:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Добрый человек
**


Профиль
Группа: Участник
Сообщений: 985
Регистрация: 3.6.2005
Где: я только не небыв ал

Репутация: 6
Всего: 14



Всем доброго времени суток.
При вставке в теги объектов из массива, я получаю некоректный результат.
Вот код. Что сдесь неправильно???
Код

<html> 
<head>
<style type=text/css>
TABLE.Varies{display:block; width:100%; border: #347856 1px solid;}
TABLE.Varies td{color:#567789; font-size:18;}
TABLE.zagolovokForTD td{font-size:12; color:#394845;}
DIV.nazvanie{font-size:19; color:#567789;}
</style>
<script language="javascript" type="text/javascript">
var sa=function sort_array(x,y){
  return((x > y) ? 1 : ((x < y) ? -1 : 0));
}
var trForTd, tdInTr;
var glavTab;  var arrayForNum=new Array(); var lineAllTD, lineAllTR;
var arrayForObjectTD=[]; var y; //Переменная сохраняет в массив ВСЕ объекты из TD тегов
var gik=function sort_tr() {
 glavTab=document.getElementById('GlavTabForDigitCamers');
 trForTd=glavTab.getElementsByTagName('TR'); //Список TR

for(var i=1; i<trForTd.length; i++) {                                             
 arrayForNum[i-1]=trForTd[i].getElementsByTagName('TD')[4].lastChild.nodeValue;  
arrayForNum.sort(sa);
} 

 for(var i=0; i<arrayForNum.length; i++) { 
  for(var k=1; k<trForTd.length; k++) {
   var val=trForTd[k].getElementsByTagName('TD')[4].lastChild.nodeValue;
    if(arrayForNum[i]==val) { //Собираем таблицу если нашли значение
       for(var td=1; td<trForTd[1].getElementsByTagName('TD').length; td++){ 
        //Сохраняем в массив объекты 
        var obj=trForTd[k].getElementsByTagName('TD')[td].lastChild.nodeValue;
        arrayForObjectTD.push(obj);        
      }
     }               
   } 
 }
 for(var i=1; i<trForTd.length; i++){
  for(var k=1; k<trForTd[1].getElementsByTagName('TD').length; k++){     
   trForTd[i].getElementsByTagName('TD')[k].innerHTML=arrayForObjectTD[++y];
 }
}

}

</script>
</head>
<body bgcolor="#ffffff">
 <TABLE width=100%><TR><TD width=100%><!--Объяденяющая ячейка-->
  <Table width=100% align=top id=""><tr><td>Цифровые фотоапараты</td></tr></Table> 
  <Table width=100% class=zagolovokForTD border=1><tr><td width=5%>Выбор</td><td width=19%>фото</td><td width=30%>наименование</td><td width=10%>Наличие</td><td><input type=button onClick="gik()" value="Сортировать все"></td></tr></Table>
  <Table id="GlavTabForDigitCamers" width=100%><TR><td width=100%>
  <Div width=50% align=center class=nazvanie>Canon</div>
  <Table width=100% class=Varies id="Canon" border=1>
  <tr name=trForTd><td width=5%><input type=checkbox name=check id=ch1></td><td width=19%><IMG src='sss/ss.jpj' width=100%></td><td width=30%>Canon A530</td><td width=10%>есть</td><td>5600</td></tr>   
  <tr name=trForTd><td><input type=checkbox name=check id=ch2></td><td><IMG src='sss/ss.jpj' width=100%></td><td>Canon A540</td><td>есть</td><td>4550</td></tr>
  <tr name=trForTd><td><input type=checkbox name=check id=ch3></td><td><IMG src='sss/ss.jpj' width=100%></td><td>Canon A430</td><td>есть</td><td>6700</td></tr>
  </Table>  
  </TD></TR></TABLE>
</TD></TR></TABLE> 
<input type="hidden" value="Цифровые фотоаппараты">
</body>
</html>



--------------------
Математика=>пиво=> програмирование, три вещи последовательны и совместимы !!!
Программирование - это не деятельнось! Программирование - это состояние души!
Бог - самый крутой программист.
PM MAIL ICQ   Вверх
vasac
Дата 8.10.2006, 19:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1060
Регистрация: 4.5.2006

Репутация: 13
Всего: 36



и чему же равен y?
PM WWW   Вверх
GIK
Дата 8.10.2006, 21:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Добрый человек
**


Профиль
Группа: Участник
Сообщений: 985
Регистрация: 3.6.2005
Где: я только не небыв ал

Репутация: 6
Всего: 14



ОК.  Глупый косяк....
Щас проблема с img тегом??? Может из-за типов данных хранящихся в массиве???



--------------------
Математика=>пиво=> програмирование, три вещи последовательны и совместимы !!!
Программирование - это не деятельнось! Программирование - это состояние души!
Бог - самый крутой программист.
PM MAIL ICQ   Вверх
Sardar
Дата 9.10.2006, 01:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бегун
****


Профиль
Группа: Модератор
Сообщений: 6986
Регистрация: 19.4.2002
Где: Нидерланды, Groni ngen

Репутация: 78
Всего: 317



Цитата(GIK @  8.10.2006,  18:28 Найти цитируемый пост)
for(var i=1; i<trForTd.length; i++) {                                             
 arrayForNum[i-1]=trForTd[i].getElementsByTagName('TD')[4].lastChild.nodeValue;  
arrayForNum.sort(sa);
} 

Неужели тебе не жалко времени твоего железа? Сортировка при каждой итерации... это сильно...

GIK, я многое видел, но такой код это просто сверх "как не нужно писать"...  smile 
Давай ты лучше обьяснишь задачу. Я понял как сортировка таблицы по столбцу, но мне важно что бы ты её понял.

По сабжу, пользовать lastChild.nodeValue не разумно, т.к. мало ли чего там может лежать (пробелы для выравнивания вёрстки, коменты и прочий мусор). Лучше в массив ложит childNodes, но IE сразу потечёт памятью если ты не будешь обнулять этот массив в ручную. Также можно брать innerHTML, писать его тоже в innerHTML. А вот мешать lastChild с innerHTML крайне не здорово.


--------------------
 Опыт - сын ошибок трудных  © А. С. Пушкин
 Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik
 Оценить мои качества можно тут.
PM   Вверх
GIK
Дата 9.10.2006, 15:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Добрый человек
**


Профиль
Группа: Участник
Сообщений: 985
Регистрация: 3.6.2005
Где: я только не небыв ал

Репутация: 6
Всего: 14



Цитата(Sardar)

Давай ты лучше обьяснишь задачу. Я понял как сортировка таблицы по столбцу, но мне важно что бы ты её понял.

Сделал как ты сказал, теперь все работает smile 


--------------------
Математика=>пиво=> програмирование, три вещи последовательны и совместимы !!!
Программирование - это не деятельнось! Программирование - это состояние души!
Бог - самый крутой программист.
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Форум для вопросов, которые имеются в справочниках, но их поиск вызвал затруднения, или для разработчика требуется совет или просьба отыскать ошибку. Напоминаем: 1) чётко формулируйте вопрос, 2) приведите пример того, что уже сделано, 3) укажите явно, нужен работающий пример или подсказка о том, где найти информацию.
 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | JavaScript: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0466 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.