-
Вебмастеру
(
http://forum.oszone.net/forumdisplay.php?f=22)
System Failure |
26-05-2008 01:55 810732 |
Получение Данных из таблицы(JS)
Доброго времени суток, уважаемые форумчане.
Сложилась у меня небольшая проблема. Предположим есть таблица из пяти столбцов и трех строк. При помощи 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>
однако в таком случае это огромная ручная работа, особенно при таблицах бОльшего размера. есть ли возможность оптимизировать данный процесс?
|
в чем ручная работа? если загнать в массив, то Ваш текст можно переписать с использованием цикла
PHP код:
for ( i=0; i<чего-то там; i++) { var tmp_j = 'box'+i; dataBase[i] = document.getElementById(tmp_j).innerText; }
Или таблица не генерируется из кода и проблема написать все id ячеек вручную? Если так, то можно попробовать поупражняться с getElementByTagName в сочетании, например с id самой таблицы. При этом, например, отбирать ячейки, относящиеся к нужной таблице и, поскольку мы будем получать их последовательно, то столь же последовательно можно будет забирать данные в массив.
|
bruder |
26-05-2008 03:42 810752 |
да, немного дополню:
Код:
<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>
|
А почему бы не создать всю таблицу не вручную, а с помощью JSа, где в числе прочего и присвоить имена в автоматическом режиме? document.writeln ('') - тупо генерируем строчки и столбцы.. Уже гарантированно известен формат таблицы и все айди, а mar уже расписала как получить к ним доступ
|
Время: 22:25.
© OSzone.net 2001-