|
|
|
| Уважаемые форумчане, подскажите в чем тут дело.
Выводит только первый цикл, 2рой не хочет... убираю первый выводится 2рой.
var tableFlag = [
[1, 1, 427],
[2, 1, 423],
[3, 2, 927],
[4, 2, 923],
[5, 3, 027],
[6, 3, 023],
];
var tableNumber = [
[1, "ÌÒÑ", "3.54 rur", 3.52],
[1, "Áèëàéí", "3.54 rur", 3.52],
[1, "ÌÒÑ", "3.54 rur", 3.52],
[1, "Áèëàéí", "3.54 rur", 3.52],
[1, "ÌÒÑ", "3.54 rur", 3.52],
[1, "Áèëàéí", "3.54 rur", 3.52],
[2, "ÌÒÑ", "5.54 rur", 5.52],
[2, "Áèëàéí", "5.54 rur", 5.52],
[2, "ÌÒÑ", "5.54 rur", 5.52],
[2, "Áèëàéí", "3.54 rur", 5.52],
[2, "ÌÒÑ", "5.54 rur", 5.52],
[2, "Áèëàéí", "5.54 rur", 5.52],
[3, "Ìåãàôîí", 927, 1],
[4, "ÂîëãàÒåëåêîì", 923, 1],
[5, "Èíôîëàäà", 027, 1],
[6, "Àèñò", 023, 1],
];
function flags(id)
{
document.getElementById("cont2").innerHTML="";
var i = 0;
var td = 1;
for(i=0; i<100; i++)
{
if(td == 1) {var class1 = "t15"; class2 = "t13"; td = 2;}
else {var class1 = "t13"; class2 = "t14"; td = 1;}
if(id == tableNumber[i][0])
{
document.getElementById("cont2").innerHTML+=("<tr> <td width='113' class='left "+class1+"'>"+tableNumber[i][1]+"</td><td width='235' class='"+class2+"'>"+tableNumber[i][2]+"</td><td width='219' class='"+class1+"'>"+tableNumber[i][3]+"</td></tr>");
}
}
document.getElementById("cont1").innerHTML="";
var t = 0;
for(t=0; t<100; t++)
{
if(id == tableFlag[t][1])
{
document.getElementById("cont1").innerHTML+=("<option value='"+tableFlag[t][0]+"'>"+tableFlag[t][2]+"</option>");
}
}
}
|
| |
|
|
|
|
|
|
|
для: Doorgen
(13.06.2010 в 09:31)
| | Ребят, подскжаите, очень горит.... :( | |
|
|
|
|
|
|
|
для: Doorgen
(13.06.2010 в 11:41)
| | вы зачем инициализируйте переменную t в цикле? достаточно один инициализировать t до цикла, а потом с ней работать, но это так замечание | |
|
|
|
|
|
|
|
для: Doorgen
(13.06.2010 в 09:31)
| | 1. Зачем Вам ПУСТОЙ последний элемент в обоих массивах? Уберите последнюю запятую в обоих случаях.
2. Числа 023 и 027 браузер преобразует в 23 и 27. Если Вам надо именно с нулём, то закавычьте везде - '023', '027'.
3. Зачем гонять оба цикла по 100 раз (и обязательно возникнет ошибка, ибо членов массива меньше, чем 100), если элементарно можно определить длины массивов?
4. Зачем плодить лишнюю переменную td, если с помощью оператора % легко определяется четность/нечетность номера добавляемой строки?
5. Удалять и создавать строки следует методами deleteRow () и insertRow (), а не глумиться с помощью innerHTML, тем более, что в MSIE строки являются read only
6. Аналогично, опшены в селекте следует удалять/добавлять DOM-методами, а не грёбанным innerHTML.
Итак, окончательно:
var tableFlag = [
[1, 1, 427],
[2, 1, 423],
[3, 2, 927],
[4, 2, 923],
[5, 3, '027'], //закавычить надо
[6, 3, '023'] //нахрена здесь запятая была? & закавычить надо
];
var tableNumber = [
[1, 'ÌÒÑ', '3.54 rur', 3.52],
[1, 'Áèëàéí', '3.54 rur', 3.52],
[1, 'ÌÒÑ', '3.54 rur', 3.52],
[1, 'Áèëàéí', '3.54 rur', 3.52],
[1, 'ÌÒÑ', '3.54 rur', 3.52],
[1, 'Áèëàéí', '3.54 rur', 3.52],
[2, 'ÌÒÑ', '5.54 rur', 5.52],
[2, 'Áèëàéí', '5.54 rur', 5.52],
[2, 'ÌÒÑ', '5.54 rur', 5.52],
[2, 'Áèëàéí', '3.54 rur', 5.52],
[2, 'ÌÒÑ', '5.54 rur', 5.52],
[2, 'Áèëàéí', '5.54 rur', 5.52],
[3, 'Ìåãàôîí', 927, 1],
[4, 'ÂîëãàÒåëåêîì', 923, 1],
[5, 'Èíôîëàäà', '027', 1], //закавычить надо
[6, 'Àèñò', '023', 1] //нахрена здесь запятая была? & закавычить надо
];
function flags (id)
{
var tbl = document.getElementById ('cont2');
if (tbl.rows.length) for (var j = tbl.rows.length; j > 0; j--)
tbl.deleteRow (-1); //вот так ПРАВИЛЬНО удаляются строки таблицы - если они есть
for (var i = 0; i < tableNumber.length; i++) //именно length, а не взятая от балды сотня
{
if (i % 2) {var class1 = 't15', class2 = 't13'}
else {var class1 = 't13', class2 = 't14'} //вот ТАК определяется четность/нечетность индекса/строки
if (id == tableNumber [i] [0])
{
var ro = tbl.insertRow (-1); //вот так ПРАВИЛЬНО добавляется в таблицу строка, а в неё - ячейки
var ce = ro.insertCell (-1); with (ce) {width = '113'; className = 'left ' + class1; innerHTML = tableNumber [i] [1]}
var ce = ro.insertCell (-1); with (ce) {width = '235'; className = class2; innerHTML = tableNumber [i] [2]}
var ce = ro.insertCell (-1); with (ce) {width = '219'; className = class1; innerHTML = tableNumber [i] [3]}
}
}
for (var slc = document.getElementById ('cont1'), j = slc.options.length - 1; j >= 0; j--)
slc.options [j] = null; //вот так ПРАВИЛЬНО удаляются опшены из селекта
for (var t = 0; t < tableFlag.length; t++) if (id == tableFlag [t] [1]) //именно length, а не взятая от балды сотня
{var opt = document.createElement ('option'); with (opt)
{value = tableFlag [t] [0]; text = tableFlag [t] [2]}
slc.options.add (opt); //вот так ПРАВИЛЬНО добавляются новые опшены в селект
}
}
|
| |
|
|
|
|