Я устанавливаю аргументы моей функции, вызываемой в событии onclick с PHP, и я также передаю «это» (кнопка) в качестве аргумента, чтобы в моей функции я получал доступ к ближайшему узлу <td> и изменял его значение.
Однако я не могу изменить значение узла.
я получил
is not a function
ошибка каждый раз, когда я пытаюсь изменить его.
PHP-код:
echo "<tr><td>";
echo "<button onclick='updateValue($index,$byte,this)'></button>";
echo "<td>".$byte."</td>";
echo "<td>".$comment."</td>";
echo "</tr>";
И моя функция JS там:
function updateValue(index,byte,button){
$.ajax({
url : 'commentrefresh.php',
type : 'GET',
data : 'bytenumber=' + byte +"&byte_id = " +index,
datatype : 'text',
success : function(data){
button.closest('tr').lastChild.val(data)
}
})
}
$(button) должно работать
Нет, у меня тот же результат
функция получает index, byte, но вы не используете их внутри функции... так что... вы используете val(data) и данные не установлены...
И если вы поделитесь всем своим кодом, возможно, мы сможем вам помочь.
Да, это просто пример того, что не нужно объяснять тысячу вещей.
хорошо, сначала проверьте, почему функция использует только данные (которые не установлены)...
это еще немного кода, но он не имеет ничего общего с данными, данные установлены правильно, проблема в том, что я не могу установить значение узла



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Как говорится в сообщении об ошибке, closest не является функцией на узлах DOM.
Вы пометили этот вопрос jquery, а объекты jQuery делать имеют метод closest, но вы не обернули узел DOM в объект jQuery.
Ну, на самом деле, я пробовал множество вещей, поэтому я потерял рассудок, но я попытался обернуть узел DOm в объект jQuery, и стало еще хуже, я даже не могу получить доступ к .lastchild, но используя код, который я разместил, я могу получить доступ к последнему узлу, который я хочу, но не изменяю его
Проверьте этот скрипач и то, как я получаю узел lastChild td.
https://jsfiddle.net/aqmtjs8k/
$(button).closest('tr').find('td:last-child')
И если вы хотите написать внутри последнего td, вы должны использовать .html(), а не .val()
.val()is only forinputs
$(button).closest('tr').find('td:last-child').html(data)Я пробовал $(button).closest('tr').lastChild.html(data), но это тоже не сработало. Почему это работает с тем, что вы предложили, но не с тем, что я пробовал?
Пожалуйста, разместите весь соответствующий код, включая HTML.