Получить последнюю строку атрибута таблицы - PullRequest
4 голосов
/ 08 марта 2012
var table = document.getElementById(table1);
var lastRow = table.rows.length;

var country = lastRow.getElementById('Country');
country.setAttribute('class', "Country"+lastRow);   

Я довольно новый, и мне было интересно, возможно ли это?

Вместо

var Country= document.getElementById('Country');

Поскольку у меня есть другой идентификатор = Страна, потому что я добавляю новые строки ..

EDIT

Я знаю, что ID уникальны. Но я клонирую последний ряд, поэтому, конечно, идентификаторы будут одинаковыми.

Ответы [ 4 ]

9 голосов
/ 08 марта 2012

К последней строке таблицы можно получить доступ из свойства rows.

var lastRow = table.rows[ table.rows.length - 1 ];

Однако я думаю, что существует некоторая путаница относительно того, что именно вы запрашиваете.

2 голосов
/ 27 декабря 2015

Я думаю, что лучший способ сделать это:

var lastTr = document.getElementById('tabRecapCommande').lastElementChild.lastElementChild;

с document.getElementById('tabRecapCommande') возвращением <table> document.getElementById('tabRecapCommande').lastElementChild.возвращая <tbody> document.getElementById('tabRecapCommande').lastElementChild.lastElementChild последний <tr> из <tbody>

, если вы console.log(lasTr), вы увидите свой последний <tr> элемент:)

2 голосов
/ 08 марта 2012

Вот как неявно получить последнюю ячейку.Обратите внимание, что вы можете ссылаться на определенный объект в массиве строк или ячеек, используя обозначения в квадратных скобках, и что из-за индексации массивов, начинающейся с 0, вы должны вычесть 1 из длины, чтобы использовать его в качестве действительного последнего индекса.

В этом примере показаны некоторые вещи, которые вы можете сделать:

<!DOCTYPE html>
<html>

<head>
<title>Table test</title>

<script language="javascript" type="text/javascript">

function init() {

var table = document.getElementById("table1");

var lastRowIndex = table.rows.length-1;

var lastCellIndex = table.rows[lastRowIndex].cells.length-1;

alert( table.rows[lastRowIndex].cells[lastCellIndex].innerHTML ); // alerts the cell's containing HTML, or 9

var lastCell = table.rows[lastRowIndex].cells[lastCellIndex]; // contains a reference to the last cell

}



window.onload = init;
</script>

</head>

<body>


<table id="table1">
<tr><td>1</td><td>2</td><td>3</td></tr>
<tr><td>4</td><td>5</td><td>6</td></tr>
<tr><td>7</td><td>8</td><td>9</td></tr>
</table>


</body>

</html>

Предположим, у вас есть произвольная таблица с 8 столбцами и 4 строками, как в следующем примере, и вы хотите, чтобы ячейка в столбце 5 и строке 3 былаПолучите ячейку, в которой вы хотите получить ссылку на таблицу (например, через getElementById), а затем выберите для правой строки и столбца через rows и cells, убедившись, что вычтите 1 из-за индексации массивов, начинающейся с0. Смотрите этот пример:

<!DOCTYPE html>
<html>

<head>
<title>Table test</title>

<script language="javascript" type="text/javascript">

function init() {

var table = document.getElementById("table1");

var column5Row3 = table.rows[2].cells[4]; // contains a reference to the cell that is in the 3rd row, and 5th column

alert( column5Row3.innerHTML ); // alerts that cell's innerHTML (or Y)

}



window.onload = init;
</script>

</head>

<body>


<table id="table1">
<tr><td>1</td><td>2</td><td>3</td><td>4</td><td>5</td><td>6</td><td>7</td><td>8</td></tr>
<tr><td>2</td><td>x</td><td>x</td><td>x</td><td>x</td><td>x</td><td>x</td><td>x</td></tr>
<tr><td>3</td><td>x</td><td>x</td><td>x</td><td>Y</td><td>x</td><td>x</td><td>x</td></tr>
<tr><td>4</td><td>x</td><td>x</td><td>x</td><td>x</td><td>x</td><td>x</td><td>x</td></tr>
</table>


</body>

</html>
1 голос
/ 08 марта 2012

Идентификатор в документе HTML является уникальным.Следовательно, нет необходимости выполнять подзапросы для поиска элементов.Вместо этого всегда используйте document.getElementById('Country')

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...