Как корректно передать значение

97
16 мая 2021, 13:30

День добрый, что-то понять не могу в чем проблема. Через php передаю функцию

$k = 'a'.$k.$drot;
echo "<td><div id='".'a'.$k.$drot."' onclick=func(".$k.") class='brd'>;
echo "</div></td>";

функцию объявляю через

function  func(kok) {
 document.getElementById(kok).style.background = 'red'; 
 console.log(kok);
}

Когда запускаю и нажимаю на требуемый элемент мне пишет:

TypeError: document.getElementById(...) is null

В чем моя ошибка? Ведь по идее должно вывести значение переданной в функцию переменной kok и сменить цвет в элементе.

Начал только недавно учить js, просмотрел кучи сайтов, но так и не понял в чем проблема. Сама передаваемая переменная kok в массиве изменяется и каждый раз передается в функцию новая. Переменная $k всегда(!!!) имеет какое-то значение.

Answer 1

Вот такой код:

$k = 1;
$drot = 2;
$k = 'a'.$k.$drot;
echo "<td><div id='".'a'.$k.$drot."' onclick=func(".$k.") class='brd'>";
echo "</div></td>";

выводит:

<td><div id='aa122' onclick=func(a12) class='brd'></div></td>
              ^------ разные -----^

Думаю выводы вы сделаете сами, где вы делаете лишнюю конкатенацию

Answer 2

В общем разобрался в чем проблема. Не в неправильном идентификаторе как отметил товарищ Сергей выше, а в том что передаваемое в функцию значение не было заранее определено. Было:

$x = 'A'.$k.$drot;

Решило проблему:

$x = '';
$x = 'A'.$k.$drot;

Не знаю почему, но после этого стало нормально видить переменную.

READ ALSO
Многопоточный Produce/Consumer

Многопоточный Produce/Consumer

Дали задачу, но чего-то никак не могу понять как ее реализовать

121
Объясните где совершил ошибку

Объясните где совершил ошибку

Занимался по книге Брайсона,дошел до момента где нужно сделать счетчик в игре больше-меньше,но каждый раз при попытки набора нового числа...

91
Получить порт из ByteBuffer

Получить порт из ByteBuffer

У меня есть перехваченный пакет в виде ByteBuffer, как из него нужно достать порт в java/kotlin?

112
Разные типы данных в активности

Разные типы данных в активности

Есть приложение, в котором отражается лента новостейЕсли кликнуть на неё, то открывается конкретная новость

107