[решено] Получение Данных из таблицы(JS)

Ответить
Аватара пользователя
System Failure

[решено] Получение Данных из таблицы(JS)

Сообщение System Failure »

Доброго времени суток, уважаемые форумчане.



Сложилась у меня небольшая проблема. Предположим есть таблица из пяти столбцов и трех строк. При помощи JS необходимо данные из этой таблицы загнать в двумерный массив. Вот только, к сожалению, я понятия не имею как можно доступиться к этим данным. По идее, можно каждой ячейке дать имя, и потом тупо перечисляя, загнать данные в массив таким образом:







HTML код:

Код: Выделить всё

<html>
<head>
<title></title>
</head>
<body onload="addData()">
<script language="javascript" type="text/javascript">
dataBase = new Array(0,0,0);
function addData()
{
dataBase[0] = document.getElementById("box0").innerText;
dataBase[1] = document.getElementById("box1").innerText;
dataBase[2] = document.getElementById("box2").innerText;
}
</script>
<table border="1">
   <tr>
      <td id="box0">5</td>
      <td id="box1">83</td>
      <td id="box2">79</td>
      <td> </td>
      <td> </td>
      <td> </td>
   </tr>
   <tr>
      <td> </td>
      <td> </td>
      <td> </td>
      <td> </td>
      <td> </td>
      <td> </td>
   </tr>
   <tr>
      <td> </td>
      <td> </td>
      <td> </td>
      <td> </td>
      <td> </td>
      <td> </td>
   </tr>
</table>
</body>
</html>



однако в таком случае это огромная ручная работа, особенно при таблицах бОльшего размера. есть ли возможность оптимизировать данный процесс?
Аватара пользователя
mar

Re: [решено] Получение Данных из таблицы(JS)

Сообщение mar »

в чем ручная работа? если загнать в массив, то Ваш текст можно переписать с использованием цикла

Код: Выделить всё

for ( i=0; i<чего-то там; i++) {
 var tmp_j = 'box'+i;
 dataBase[i] = document.getElementById(tmp_j).innerText;
}


Или таблица не генерируется из кода и проблема написать все id ячеек вручную? Если так, то можно попробовать поупражняться с getElementByTagName в сочетании, например с id самой таблицы. При этом, например, отбирать ячейки, относящиеся к нужной таблице и, поскольку мы будем получать их последовательно, то столь же последовательно можно будет забирать данные в массив.
Аватара пользователя
bruder

Re: [решено] Получение Данных из таблицы(JS)

Сообщение bruder »

да, немного дополню:



Код: Выделить всё

<HTML>
 <HEAD>  
  <script type="text/javascript">
      <!--
		function tabWalker() {
			var tbls = document.getElementById("table");
			var arr = new Array(tbls.rows.length);
				for (var r=0; r<tbls.rows.length; r++) {	
					arr[r] = new Array(tbls.rows[r].cells.length);
					for (var c=0; c<tbls.rows[r].cells.length; c++) {
						arr[r][c] = tbls.rows[r].cells[c].innerHTML;
						alert("arr["+r+"]["+c+"]="+arr[r][c]);						
					}
				}		
		}
		window.onload=tabWalker;
      -->
  </script>
 </HEAD>
 <BODY>
  <table id="table">
 <tr>
  <td>1</td>
  <td>2</td>
  <td>3</td>
  <td>4</td>
  <td>5</td>
 </tr>
 <tr>
  <td>6</td>
  <td>7</td>
  <td>8</td>
  <td>9</td>
  <td>0</td>
 </tr>
</table>
 </BODY>
</HTML>
Аватара пользователя
mrcnn

Re: [решено] Получение Данных из таблицы(JS)

Сообщение mrcnn »

А почему бы не создать всю таблицу не вручную, а с помощью JSа, где в числе прочего и присвоить имена в автоматическом режиме? document.writeln ('') - тупо генерируем строчки и столбцы.. Уже гарантированно известен формат таблицы и все айди, а mar уже расписала как получить к ним доступ
Ответить

Вернуться в «Вебмастеру»