как записать 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, время: 20:39. |