|
Получить строка/столбец "кликнутой" ячейки Гугл-таблицы
Скрипты только постигаю... работал исключительно в VBA...
Пытаюсь наваять "нечто" в Гугл-Таблице. Вопрос - в заголовке темы. Стырил на каком-то сайте код: document.querySelector('Prestige').onclick = (event) => { let cell = event.target; if (cell.tagName.toLowerCase() != 'td') return; let i = cell.parentNode.rowIndex; let j = cell.cellIndex; console.log(i, j); } }; В таблице вставил его в редактор скриптов... и ничего, хоть обкликайся:cray: А ,если запустить скрипт прямо в редакторе, то он пишет что "документ не определён и указывает на первую строку. 'Prestige' - имя Таблицы |
|
Прочёл ссылку... ешё раз прочёл... интуитивно догадываюсь, что чего-то не дописал? Понять бы только - что?
Если файл(Таблица) открыт на экране, то разве он уже не загружен и событие DOMContentLoaded не произошло? Зачем его специально обрабатывать? (Логика работы в VBA меня всё время сбивает.:-E ) |
Цитата:
PS. Кстати, querySelector(), это получение ссылки на объект по селектору, которым может быть значения: имя тега, атрибута id, или имя класса. То есть в вашем случае, если Prestige, это id, то document.querySelector('#Prestige') если имя класса, то document.querySelector('.Prestige') а у вас не понять что. Если ваш скрипт размещен, например, в конце страницы, то DOMContentLoaded и не обязателен, и причиной ошибки может быть как раз проблема с некорректным селектором (при этом об этом в ошибке будет сказано). Не заметил я сразу этот ляп, проверьте, что у вас и исправьте. |
Я пока не понимаю - где размещён мой скрипт? Есть Гугл-таблица, у неё есть Редактор скриптов, вот в нём и лежит скрипт. Интуичу, что все эти td,tr и т.п. мне не нужны, ведь сама страница(собственно таблица) уже сформирована?
Пробую переделать код. Вариант 1: function myFunc() { function ready(){ document.querySelector('Prestige').onclick = (event) => { let cell = event.target; if (cell.tagName.toLowerCase() != 'td') return; let i = cell.parentNode.rowIndex; let j = cell.cellIndex; console.log(i, j); }}}; Ошибка при запуске в Редакторе пропала, но и работать не стало. Вариант 2: function myFunc() { document.addEventListener("DOMContentLoaded", () => { document.querySelector('Prestige').onclick = (event) => { let cell = event.target; if (cell.tagName.toLowerCase() != 'td') return; let i = cell.parentNode.rowIndex; let j = cell.cellIndex; console.log(i, j); }})}; И опять возникает "документ не определён" во второй строке Prestige - имя таблицы, пробовал и '#Prestige', и '.Prestige' в Варианте 1 - без толку. |
Цитата:
|
Google Таблицы, по умолчанию создаётся Новая таблица, я её и переименовал:blink:
ради интереса в строке document.querySelector('Prestige').onclick... менял значение в скобках на любое... а ничего не происходит! В смысле - ошибки не возникает! |
<table id="as"> будет найдена по селектору querySelector("#as") - по идентификатору
<table class="as"> будет найдена по селектору querySelector(".as") - по имени класса <table> будет найдена по селектору querySelector("table") - по имени тега А querySelector("as") ничего не найдет. |
Цитата:
|
:blink: если нет атрибута Name, то где тогда хранится моё название?
|
Часовой пояс GMT +3, время: 11:02. |
|