как записать id всех элементов в массив?
как записать id всех элементов в массив?
|
var arr = []; var list = document.getElementsByTagName('*'); for (var i=0; i<list.length; i++) { if (list[i].id) arr.push(list[i].id); } |
Вот это говорит undefined:
function go1() { var arr = [] // массив значений id var list = document.getElementsByTagName('*'); for(i=0; i<list.length; i++) { if(list[i].id) arr.push(list[i].id); } document.write(arr[i]) } </script> <input type="button" value="Save" onclick="go1()"> <table width="600" border="1" cellspacing="0" cellpadding="0"> <tr> <td align="center" id="a3">Data1</td> <td align="center" id="b3">Data2</td> <td align="center" id="c3">Data3</td> </tr> </table> |
Цитата:
|
Функция записывает в значения id элементов, у которых нет id в значении null. Почему вот с этим условием if(list[i].id) она не пропускает запись в массив элементов без айдишников?
|
Вот это вот выводит 9 раз undefined прежде чем начать выводить a3, b3, c3. Выходт в массив arr[] всё записывается?
<script> function go1() { var arr = [] // массив значений id var list = document.getElementsByTagName('*'); for(i=0; i<list.length; i++) { if(list[i].id) arr[i] =list[i].id; alert(arr[i]) } } </script> <input type="button" value="Alert" onclick="go1()"> <table width="600" border="1" cellspacing="0" cellpadding="0"> <tr> <td align="center" id="a3">Data1</td> <td align="center" id="b3">Data2</td> <td align="center" id="c3">Data3</td> </tr> </table> |
Цитата:
|
ааа, меня опередил PeaceCoder:cray:
|
Все равно не работает. Теперь всю дорогу выдает только undefined. Не пойму че за нна( Все ж нормально должно быть
|
вот так посмотрел:
<script> function go1() { var arr = [] // массив значений id var list = document.getElementsByTagName('*'); for(i=0; i<list.length; i++) { if(list[i].id) arr.push(list[i].id); alert(i +' --> '+arr[i]) } } </script> Все элементы массива undefined |
Цитата:
Вы запутались в индексах. Иногда метод вдумчивого чтения кода помогает. |
SunYang, ну что же Вы путаетесь))
function go1() { var arr = [] // массив значений id var list = document.getElementsByTagName('*'); for(i=0; i<list.length; i++) { if(list[i].id){ arr.push(list[i].id); } } alert(arr); } |
Спасибо. Помогло) Чета я совсем туплю)
|
А почему вот это
arr[i] = list[i].id;выдает несколько элементов с id = undefined ? |
Цитата:
Цитата:
|
А метод push() добавляет в массив id, которые определены.
|
снова столкнулся с проблемой...
Мне нужно записать id только элементов, к которым можно применить метод innerHTML Это возможно? |
Цитата:
|
Цитата:
|
метод, свойство - я не особо разбираюсь. Я пытаюсь написать прогу (HTA-приложение), которая производит запись содержимого ячеек таблицы в файл, а при каждом открытии программы она считывает из файла данные, и вставляет их в ячейки таблицы. Т.к. с php и базами я вообще не знаком (плюс ко всему надо, чтобы прога работала без сервера), пытаюсь организовать что-то типа базы данных на JS
Программа представляет из себя поля ввода и таблицы, куда записываются введенные значения, и кнопки сохранения, чтобы введенные данные сохранить (записать в файл), а при открытии программы автоматически их от туда доставать и подставлять в таблицы. Вот код: <HTML> <HEAD> <TITLE>Моя программа</TITLE> <HTA:APPLICATION APPLICATIONNAME="firstHTA" BORDER=”” CAPTION="yes" ICON="my.ico" SHOWINTASKBAR="no" SINGLEINSTANCE="yes" SYSMENU="yes" WINDOWSTATE="normal" ></HEAD><BODY BGCOLOR="ButtonFace" SCROLL="no"> </HEAD> <BODY> <script> var filepath1 = "dbID.txt" var filepath2 = "dbData.txt" // функция сохранения массива с id-шниками в файл базы айдишников и массива с данными в файл базы с данными function go1() { arr = new Array(); // при запуске функции сохранения очищаем массив id-шников arrData = new Array(); // при запуске функции сохранения очищаем массив данных // массив значений ID var list = document.getElementsByTagName('*'); for(i=0; i<list.length; i++) { if(list[i].id){ arr.push(list[i].id); } } // создаем файл базы данных и записываем строку (массив) с ID var fso = new ActiveXObject("Scripting.FileSystemObject") var myfile = fso.CreateTextFile(filepath1) myfile.Close() var opnfile = fso.OpenTextFile(filepath1, 2) opnfile.WriteLine(arr) opnfile.Close() // создаем массив из вытащенной строки из файла базы айдишников var arrStr = arr+'' // строка из массива ID (для разбиения на массив) var arrID = arrStr.split(',') // массив id-шников // создаем массив данных, соответствующих айдишникам for(i=0; i<arrID.length; i++) { Data = document.getElementById(arrID[i]).innerHTML arrData[i] = Data // МАССИВ С ДАННЫМИ } // создаем файл базы данных и записываем построчно данные из массива с данными плюс разделитель var fso = new ActiveXObject("Scripting.FileSystemObject") var myfile = fso.CreateTextFile(filepath2) myfile.Close() var opnfile = fso.OpenTextFile(filepath2, 2) for(i=0; i<arrData.length; i++) { opnfile.WriteLine(arrData[i]+'_w') // _w - это разделитель для формирования массива данных. Используем его, так как использовать запятую как в случае с массивом айдишников нельзя, т.к. данные могут содержать числа с запятой } opnfile.Close() } // Конец функции // ФУНКЦИЯ ЗАПИСИ ДАННЫХ ИЗ БАЗ ДАННЫХ В ЯЧЕЙКИ ТАБЛИЦ function go2() { // вытаскиваем и преобразовываем в массив айдишники из файла базы с айдишниками var fso = new ActiveXObject("Scripting.FileSystemObject") var myfile = fso.OpenTextFile(filepath1, 1) var strID = myfile.ReadLine() myfile.Close() var arrID = strID.split(',') // массив айдишников var fso = new ActiveXObject("Scripting.FileSystemObject") var myfile = fso.OpenTextFile(filepath2, 1) var DataStr = myfile.ReadAll() var DataArr = DataStr.split('_w') // МАССИВ С ДАННЫМИ myfile.Close() // записываем в таблицы значения из массива с данными, соответствующие айдишникам из массива с айдишниками for(i=0; i<arrID.length; i++) { document.getElementById(arrID[i]).innerHTML = DataArr[i] } } // конец функции </script> <input type="button" value="Сохранить" onclick="go1()"> <input type="button" value="Извлечь из БД" onclick="go2()"> <table width="600" border="1" cellspacing="0" cellpadding="0"> <tr> <td align="center" id="a3">Data1</td> <td align="center" id="b3">Data2</td> <td align="center" id="c3">Data3</td> <td align="center" id="d3">Data3</td> </tr> </table> </BODY> </HTML> |
А вот так внешне выглядит реально то, для чего я это делаю:
Начало.... <table width="400" border="0" cellspacing="0" cellpadding="0"> <tr> <td width="100">Месяц:</td> <td width="200"><input type="text" id="month" /></td> <td width="100"><input type="button" value="Ввести" id="month_input" onclick="month()" /></td> </tr> <tr> <td>Год:</td> <td><input type="text" id="year" value=""/></td> <td><input type="button" value="Ввести" id="year_input" onclick="year()" /></td> </tr> </table> <p> </p> <table width="600" border="0" cellspacing="0" cellpadding="0" > <tr> <td width="198" class="text1">Введите номер квартиры</td> <td width="402"><input type="text" id="kv" value="" /></td> </tr> <tr> <td class="text1">Стоят ли счетчики на ГВС/ХВС/Канализацию<strong></strong></td> <td><input type="button" value="есть" id="chYes" onclick="ch(1)" /> <input type="button" value="нет" id="chYes" onclick="ch(0)" /> </td> </tr> <tr> <td class="text1">Площадь квартиры</td> <td><span class="text1"> <input type="text" value="" id="Ss" /> </span></td> </tr> <tr> <td class="text1">Проживает, чел</td> <td><span class="text1"> <input type="text" id="Xx" value=""/> </span></td> </tr> <tr> <td class="text1">Временно зарегестрированные, чел</td> <td><span class="text1"> <input type="text" id="Yy" value="" /> </span></td> </tr> <tr> <td class="text1">Временно отсутствует</td> <td><span class="text1"> <input type="text" id="Zz" value="" /> </span></td> </tr> <tr> <td class="text1">Ф.И.О плательщика</td> <td><span class="text1"> <input type="text" id="fio" value="" /> </span></td> </tr> <tr> <td class="text1"> </td> <td><input type="button" value="Ввести" id="kv_data" onclick="DataKv()" /></td> </tr> </table> <p> </p> <table width="60%" border="0" cellspacing="0" cellpadding="0" align="center"> <tr> <td class="text1" ><strong>Наименование тарифа</strong></td> <td class="text1" >Новый тариф</td> <td align="center" class="text1" >Заменить в платежках</td> <td align="center" class="text1" >Расчитать с новым тарифом</td> </tr> <tr> <td width="41%" ><span class="text1">Содержание и текущий ремонт</span></td> <td width="12%" ><input type="text" value="" id="a0"/></td> <td width="21%" align="center" ><input type="button" id="b0" value="Заменить" onclick="re0()"/></td> <td width="26%" align="center" ><input type="button" id="c0" value="Расчитать" /></td> </tr> <tr> <td ><span class="text1">Вывоз ТБО</span></td> <td ><input type="text" value="" id="a1"/></td> <td align="center" ><input type="button" id="b1" value="Заменить" /></td> <td align="center" ><input type="button" id="c1" value="Расчитать" /></td> </tr> <tr> <td class="text1" >ВДГО</td> <td ><input type="text" value="" id="a2"/></td> <td align="center" ><input type="button" id="b2" value="Заменить" /></td> <td align="center" ><input type="button" id="c2" value="Расчитать" /></td> </tr> <tr> <td class="text1" >Отопление</td> <td ><input type="text" value="" id="a3"/></td> <td align="center" ><input type="button" id="b3" value="Заменить" /></td> <td align="center" ><input type="button" id="c3" value="Расчитать" /></td> </tr> <tr> <td class="text1" >ГВС</td> <td ><input type="text" value="" id="a4"/></td> <td align="center" ><input type="button" id="b4" value="Заменить" /></td> <td align="center" ><input type="button" id="c4" value="Расчитать" /></td> </tr> <tr> <td class="text1" >Холодная вода</td> <td ><input type="text" value="" id="a5"/></td> <td align="center" ><input type="button" id="b5" value="Заменить" /></td> <td align="center" ><input type="button" id="c5" value="Расчитать" /></td> </tr> <tr> <td class="text1" >Канализация</td> <td ><input type="text" value="" id="a6"/></td> <td align="center" ><input type="button" id="b6" value="Заменить" /></td> <td align="center" ><input type="button" id="c6" value="Расчитать" /></td> </tr> <tr> <td class="text1" >Лифт</td> <td ><input type="text" value="" id="a7"/></td> <td align="center" ><input type="button" id="b7" value="Заменить" /></td> <td align="center" ><input type="button" id="c7" value="Расчитать" /></td> </tr> <tr> <td class="text1" >Кап. ремонт</td> <td ><input type="text" value="" id="a8"/></td> <td align="center" ><input type="button" id="b8" value="Заменить" /></td> <td align="center" ><input type="button" id="c8" value="Расчитать" /></td> </tr> <tr> <td class="text1" > Электроэнергия</td> <td ><input type="text" value="" id="a9"/></td> <td align="center" ><input type="button" id="b9" value="Заменить" /></td> <td align="center" ><input type="button" id="c9" value="Расчитать" /></td> </tr> <tr> <td class="text1" >ТО индивидуал. газ оборудован.</td> <td ><input type="text" value="" id="a10"/></td> <td align="center" ><input type="button" id="b10" value="Заменить" /></td> <td align="center" ><input type="button" id="c10" value="Расчитать" /></td> </tr> </table> <p> </p> ...это откуда вводятся данные в квитанцию |
продолжение...
А это сам образец квитанции, поля и ячейки которой нужно сохранять <table align="center" width="90%" border="0" cellspacing="0" cellpadding="0"> <tr> <td width="20%" style=" padding:30px; border-right:#000000 solid 2px;" valign="top"><p>Извещение</p> <p> </p></td> <td width="80%" style=" padding:10px; border-bottom:#000000 solid 2px;"><p><strong>Лицевой счет № <span id="kv1">1</span></strong><br /> Членские взносы на ремонт и содержание жилья за <strong><span id="month_1">{МЕСЯЦ}</span> <span id="year_1">{ГОД}</span></strong><br /> Получатель платежа: ТСЖ "Галкина-8"<br /> <font class="text1">ИНН/КПП 5249098240/524901001 Р/сч 40703810008260000050 К/сч 30101810700000000826 БИК 04227<br /> Банк получателя платежа: ОАО "АКБ Саровбизнесбанк Нижегородская обл. г. Дзержинск"</font><br /> <strong>ПЛАТЕЛЬЩИК: <span id="fio_1">{ПЛАТЕЛЬЩИК}</span></strong><br /> <strong>АДРЕС: г. ДЗЕРЖИНСК, ГАЛКИНА 8, кв. <span id="kv_1">1</span></strong></p> <p> </p> <table width="80%" border="0" cellspacing="0" cellpadding="0"> <tr> <td width="50%" align="left"> <p><em><strong>сумма к оплате</strong></em> <font class="summa"><strong> {сумма} </strong></font></p></td> <td width="50%" align="right" class="text1">Подпись плательщика _______________</td> </tr> </table> </td> </tr> <tr> <td style=" padding:30px; border:#000000 solid 2px; border-bottom:none; border-left:none;" valign="top">Квитанция</td> <td style=" padding:10px;"><p> </p> <p><strong>Лицевой счет № 1</strong><br /> Членские взносы на ремонт и содержание жилья за <strong><span id="month_2">{МЕСЯЦ}</span> <span id="year_2">{ГОД}</span></strong><br /> Получатель платежа: ТСЖ "Галкина-8"<br /> <font class="text1">ИНН/КПП 5249098240/524901001 Р/сч 40703810008260000050 К/сч 30101810700000000826 БИК 04227<br /> Банк получателя платежа: ОАО "АКБ Саровбизнесбанк Нижегородская обл. г. Дзержинск"</font><br /> <strong>ПЛАТЕЛЬЩИК: <span id="fio2_1">{ПЛАТЕЛЬЩИК}</span></strong><br /> <strong>АДРЕС: г. ДЗЕРЖИНСК, ГАЛКИНА 8, кв. 1</strong></p> <p class="text1">Прожиает <strong><span id="Xx_1">{Xx}</span></strong> чел, врем зарегистр. <strong><span id="Yy_1">{Yy}</span></strong> чел, врем. отсутств. <strong><span id="Zz_1">{Zz}</span></strong> чел, площадь общая <strong><span id="Ss_1">{Ss}</span></strong> кв.м.</p> <table width="100%" border="0" cellspacing="0" cellpadding="0" class="TDone" style="border-collapse:collapse;"> <tr> <td colspan="7" style="padding-left:10px; border:#000000 solid 2px;"><font class="text1">Счетчик</font></td> </tr> <tr> <td width="28%" align="center" class="text1"><strong>Наименование Услуги</strong></td> <td width="12%" align="center" class="text1">Размеры платы руб/кв.м руб/чел</td> <td width="12%" align="center" class="text1">КОЛ-ВО</td> <td width="12%" align="center" class="text1">Стоимость по тарифу, руб.</td> <td width="12%" align="center" class="text1">Перерасчет услуг, руб</td> <td width="12%" align="center" class="text1"><strong>Начислено</strong>, руб</td> </tr> <tr> <td class="text1">Содержание и текущий ремонт</td> <td align="center"> </td> <td align="center" id="kolSs_1_1"> </td> <td align="center"> </td> <td align="center"> </td> <td align="center"> </td> </tr> <tr> <td class="text1">Вывоз ТБО</td> <td align="center" id="1_a1"> </td> <td align="center" id="kolSs_1_2"> </td> <td align="center"> </td> <td align="center"> </td> <td align="center"> </td> </tr> <tr> <td class="text1">ВДГО</td> <td align="center" id="1_a2"> </td> <td align="center" id="kolSs_1_3"> </td> <td align="center"> </td> <td align="center"> </td> <td align="center"> </td> </tr> <tr> <td class="text1">Отопление</td> <td align="center" id="1_a3"> </td> <td align="center" id="kolSs_1_4"> </td> <td align="center"> </td> <td align="center"> </td> <td align="center"> </td> </tr> <tr id="gvs_1"> <td class="text1">ГВС</td> <td align="center" id="1_a4"> </td> <td align="center" id="kolXx_1_1"> </td> <td align="center"> </td> <td align="center"> </td> <td align="center"> </td> </tr> <tr id="hvs_1"> <td class="text1">Холодная вода</td> <td align="center" id="1_a5"> </td> <td align="center" id="kolXx_1_2"> </td> <td align="center"> </td> <td align="center"> </td> <td align="center"> </td> </tr> <tr id="kan_1"> <td class="text1">Канализация</td> <td align="center" id="1_a6"> </td> <td align="center" id="kolXx_1_3"> </td> <td align="center"> </td> <td align="center"> </td> <td align="center"> </td> </tr> <tr> <td class="text1">Лифт</td> <td align="center" id="1_a7"> </td> <td align="center" id="kolSs_1_5"> </td> <td align="center"> </td> <td align="center"> </td> <td align="center"> </td> </tr> <tr> <td class="text1">Кап. ремонт</td> <td align="center" id="1_a8"> </td> <td align="center" id="kolSs_1_6"> </td> <td align="center"> </td> <td align="center"> </td> <td align="center"> </td> </tr> <tr> <td class="text1"> Электроэнергия</td> <td align="center" id="1_a9"> </td> <td align="center" id="kolXx_1_4"> </td> <td align="center"> </td> <td align="center"> </td> <td align="center"> </td> </tr> <tr> <td class="text1">ТО индивидуал. газ оборудован.</td> <td align="center" id="1_a10"> </td> <td align="center" id="kolSs_1_7"> </td> <td align="center"> </td> <td align="center"> </td> <td align="center"> </td> </tr> <tr> <td align="right"><strong>ИТОГО:</strong></td> <td colspan="2" style="border:none;"> </td> <td> </td> <td colspan="2" align="right"> <strong>{сумма}</strong></td> </tr> <tr> <td colspan="7" style="border:none;" align="right">Итого к оплате: <strong>{сумма}</strong></td> </tr> </table> <p class="text1"> </p></td> </tr> </table> Все расчеты вроде сделал, осталось дописать только функцию сохранения. А исключить id-шники полей ввода, хочу, т.к. данные из базы будут подставляться только в образец квитанции. Помогите плиииз)) |
Часовой пояс GMT +3, время: 03:33. |