Видимость элемента getElementById
Есть табличка выводимая при загрузке страницы с данными из БД
Код:
<div id="firstresult">
window.onload = function(){
var table = document.getElementById("table1");
if (table != null) {
for (var i = 0; i < table.rows.length; i++) {
table.rows[i].onclick = function () {
alert(this.cells[0].innerHTML);
};
}
}
Есть Ajax который который выдает новую отсортированную таблицу, которую генерирует другой php и вставляет в <div id="firstresult"> Код таблицы как и изначальный. Но если для изначальной таблицы onclick события работают, то для обновленной таблицы переданной из другого php файла, уже нет. У таблиц стоят одинаковые id. Как тут нужно делать? |
присваивайте onclick при генерации новой таблицы.
|
Цитата:
не могли бы вы разъяснить мои последующие действия |
Цитата:
Чтобы все работало надо запустить ту же функцию, чтобы она повесила onclick на новые созданные строки этой таблицы, на которых его еще нет. |
Цитата:
Как мне повесить эту функцию на новый элемент, увы не знаю :( |
Ну.. вероятно, у вас есть JS функция, которая кидает элементы, которые вернул ajax запрос, в таблицу. Не видя кода трудно сказать, но если грубо, то после строчки, которая вставляет новые элементы в таблицу, вероятно надо вставить
var table = document.getElementById("table1");
if (table != null) {
for (var i = 0; i < table.rows.length; i++) {
table.rows[i].onclick = function () {
alert(this.cells[0].innerHTML);
};
}
|
lavds,
document.querySelector("#firstresult").addEventListener("click", function (event) {
if (event.target.tagName == "TD") {
//клик на ячейку
}
}, true);
Код требует доработки для кроссбраузерности и содержимого таблицы, но подход должен быть ясен :) 1 обработчик на все строки и не важно новые они или старые. |
<div id="firstresult">
<table>
<tr><td>1</td><td>2</td></tr>
</table>
</div>
<button onclick="document.querySelector('#firstresult').innerHTML = '<table><tr><td>3</td><td>4</td></tr></table>'; return false;">
Обновить таблицу!
</button>
<script>
document.querySelector('#firstresult').addEventListener("click", function (event) {
if (event.target.tagName == "TD") {
alert(event.target.innerHTML);
}
}, true);
</script>
|
Цитата:
Мне нужен текст первой ячейки в строке, при нажатии в любую ячейку строки |
|
| Часовой пояс GMT +3, время: 18:48. |