Видимость элемента 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, время: 05:33. |