Это мой код из контроллера, где я использовал цикл, чтобы показать это.
<input type = "hidden" class = "notif_date" value = "'.$created_at.'">
пример данных этого - несколько дат: 2019-05-28 13:45:45
Теперь я пытаюсь получить последнюю дату, которая будет отображаться с помощью JavaScript.
В настоящее время у меня есть этот код:
var last_date = document.getElementsByClassName("notif_date");
console.info(last_date);
Но это только получает массив типов ввода
Итак, я попытался использовать last()
и разместить вот так console.info(last_date.last());
, и это дает мне такую ошибку
Uncaught TypeError: last_date.last is not a function
Как я могу получить последнее значение даты с помощью JavaScript?
Чтобы получить последний элемент, вы можете использовать следующий код
let elements = document.getElementsByClassName("notif_date");
console.info(elements[elements.length-1]);
Этот код предоставит вам правильный вывод, который вы хотите.
Отредактировано
Если вы хотите получить значение последнего элемента, используйте это: -
console.info(elements[elements.length-1].val());
Примечание: Но вы не можете получить ценность напрямую от document.getElementsByClassName("notif_date")
. Потому что это возвращает несколько объектов из нескольких элементов класса.
Но если вы хотите получить значение всех элементов, вам нужно зациклить это.
Использование нового метода Массив.prototype.at().
let elements = [...document.getElementsByClassName("notif_date")];
let last_input = elements.at(-1);
let last_value = elements.at(-1).value;
console.info(last_input, last_value);
@KingRG нет, вы не можете использовать .val() здесь напрямую, это вещь jQuery. Вы можете сначала обернуть
elements[elements.length-1]
в$()
, чтобы создать объект jQuery, но вы также можете просто получить доступ к значению напрямую, используя.value
, для которого не нужен jQuery.