Отображение даты с разделением на день - месяц - год и комбинации - PullRequest
1 голос
/ 09 мая 2020

Я пытаюсь использовать текущий месяц, год, месяц-год и день-месяц на моей странице html.

Это javascript Я использую

var months = ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"];
var n = new Date();
var y = n.getFullYear();
var m = n.getMonth();
var d = n.getDate();
document.getElementById("date").innerHTML = d + " " + months[m] + " " + y;
document.getElementById("month-year").innerHTML =  months[m] + " " + y;
document.getElementById("day-month").innerHTML = d + " " + months[m];
document.getElementById("year").innerHTML = y;
document.getElementById("month").innerHTML = months[m];
document.getElementById("day").innerHTML = d;

Я использую тег html <a> для вызова даты, месяца, года и т. Д. c следующим образом:

<a id="date"></a>
<a id="month-year"></a>
<a id="day-month"></a>
<a id="year"></a>
<a id="month"></a>
<a id="day"></a>

Однако он работает только тогда, когда я использую <a id="date"></a> где-нибудь на странице, если я не использую <a id="date"></a>, другие теги не работают.

Я создал jsfiddle , чтобы выделить проблему. Если вы удалите <a id="date"></a> из раздела Html, вы увидите проблему, о которой я говорю.


Благодаря ответу ниже

Полный код можно можно увидеть на jsfiddle

1 Ответ

3 голосов
/ 09 мая 2020

Это потому, что ваш javascript ломается из-за нулевого объекта на

document.getElementById("date").innerHTML = d + " " + months[m] + " " + y;

. Вы должны проверить, существует ли он, прежде чем устанавливать innerHTML. Например:

var dateObject = document.getElementById("date");
if (dateObject) dateObject.innerHTML = d + " " + months[m] + " " + y;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...