Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #11 (permalink)  
Старый 03.02.2010, 23:55
Аватар для Мараторий
Кандидат Javascript-наук
Отправить личное сообщение для Мараторий Посмотреть профиль Найти все сообщения от Мараторий
 
Регистрация: 22.01.2010
Сообщений: 114

Сообщение от SunYang Посмотреть сообщение
Все элементы массива undefined
Это неправда.

Вы запутались в индексах. Иногда метод вдумчивого чтения кода помогает.
Ответить с цитированием
  #12 (permalink)  
Старый 04.02.2010, 02:13
Любитель
Отправить личное сообщение для JsLoveR Посмотреть профиль Найти все сообщения от JsLoveR
 
Регистрация: 16.12.2009
Сообщений: 422

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);
	}
Ответить с цитированием
  #13 (permalink)  
Старый 04.02.2010, 15:54
Профессор
Отправить личное сообщение для SunYang Посмотреть профиль Найти все сообщения от SunYang
 
Регистрация: 22.02.2008
Сообщений: 189

Спасибо. Помогло) Чета я совсем туплю)
Ответить с цитированием
  #14 (permalink)  
Старый 04.02.2010, 22:15
Профессор
Отправить личное сообщение для SunYang Посмотреть профиль Найти все сообщения от SunYang
 
Регистрация: 22.02.2008
Сообщений: 189

А почему вот это
arr[i] = list[i].id;
выдает несколько элементов с id = undefined ?
Ответить с цитированием
  #15 (permalink)  
Старый 04.02.2010, 23:42
Аватар для PeaceCoder
Профессор
Отправить личное сообщение для PeaceCoder Посмотреть профиль Найти все сообщения от PeaceCoder
 
Регистрация: 15.12.2009
Сообщений: 742

Сообщение от SunYang
выдает несколько элементов с id = undefined ?
потому что гладиолус
Сообщение от SunYang
var list = document.getElementsByTagName('*');
эта команда выдает все элементы в том числе и HTML и HEAD и script и т.п. а у них нет id
__________________
Настоящий программист думает и осознает сам решение задачи, а не копирует другие мысли, не осознавая их (c)
Относись к человеку так же, как хотелось бы отношения к себе (с)
Все нужно там, где оно нужно, а все не нужно нигде (с) Gozar
B~Vladi: А кто такой JavaScript стрелок?! micscr: это тот, кто не jQuery танкист.
Программы становятся медленнее быстрее, чем компьютеры становятся быстрее (с) Никлаус Вирт
Ответить с цитированием
  #16 (permalink)  
Старый 05.02.2010, 01:28
Любитель
Отправить личное сообщение для JsLoveR Посмотреть профиль Найти все сообщения от JsLoveR
 
Регистрация: 16.12.2009
Сообщений: 422

А метод push() добавляет в массив id, которые определены.
Ответить с цитированием
  #17 (permalink)  
Старый 06.02.2010, 19:36
Профессор
Отправить личное сообщение для SunYang Посмотреть профиль Найти все сообщения от SunYang
 
Регистрация: 22.02.2008
Сообщений: 189

снова столкнулся с проблемой...
Мне нужно записать id только элементов, к которым можно применить метод innerHTML
Это возможно?
Ответить с цитированием
  #18 (permalink)  
Старый 06.02.2010, 19:50
Аватар для Riim
Рассеянный профессор
Отправить личное сообщение для Riim Посмотреть профиль Найти все сообщения от Riim
 
Регистрация: 06.04.2009
Сообщений: 2,379

Сообщение от SunYang
метод innerHTML
метод?
Ответить с цитированием
  #19 (permalink)  
Старый 06.02.2010, 20:58
Любитель
Отправить личное сообщение для JsLoveR Посмотреть профиль Найти все сообщения от JsLoveR
 
Регистрация: 16.12.2009
Сообщений: 422

Сообщение от SunYang Посмотреть сообщение
Мне нужно записать id только элементов, к которым можно применить метод innerHTML
Это возможно?
Не логично как-то, для чего Вам это надо? innerHTML - это свойство.
Ответить с цитированием
  #20 (permalink)  
Старый 06.02.2010, 22:46
Профессор
Отправить личное сообщение для SunYang Посмотреть профиль Найти все сообщения от SunYang
 
Регистрация: 22.02.2008
Сообщений: 189

метод, свойство - я не особо разбираюсь. Я пытаюсь написать прогу (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>

Последний раз редактировалось SunYang, 06.02.2010 в 22:51.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как передать массив из PHP в js (AJAX) Александр Иванов Общие вопросы Javascript 7 10.09.2009 10:22
Как снять фокус со всех элементов? Logo Общие вопросы Javascript 7 02.07.2009 23:53
Как лучше сделать глобальный массив skyfish AJAX и COMET 4 17.02.2009 18:05
Как обработать несколько элементов подряд? vladymyrk jQuery 1 07.01.2009 20:33
Как передать массив? remitmaster Общие вопросы Javascript 6 17.09.2008 12:47