yii2 Fullcalendar - Почему оповещение для CalEvent работает, но не для обновления innerHtml? - PullRequest
1 голос
/ 22 сентября 2019

Я использую philippfrenzel/yii2fullcalendar и хочу показать описание события.

, когда я использую код:

<script>
var JSEventClick = (function(calEvent, jsEvent, view) {
   //  document.getElementsByClassName('.fc-title').innerHtml += 'calEvent.nonstandard.field1' ;
    alert(calEvent.title + ' -- ' + calEvent.nonstandard.field1);
});
</script>

все работает нормально.

но когда я использую:

<script>
var JSEventClick = (function(calEvent, jsEvent, view) {
     document.getElementsByClassName('.fc-title').innerHtml += calEvent.nonstandard.field1 ;
  //  alert(calEvent.title + ' -- ' + calEvent.nonstandard.field1);
});
</script>

или

<script>
(function(calEvent, jsEvent, view) {
     document.getElementsByClassName('.fc-title').innerHtml += calEvent.nonstandard.field1;
  //  alert(calEvent.title + ' -- ' + calEvent.nonstandard.field1);
});
</script>

также пытался

<script>
var JSEventClick = (function(calEvent, jsEvent, view) {
    var myEvent = document.getElementsByClassName('.fc-title') ;
    var codeBlock = ( ' -- ' + calEvent.nonstandard.field1);
    myEvent.innerHtml += codeBlock;
  //  alert(calEvent.title + ' -- ' + calEvent.nonstandard.field1);
});
</script>

Содержимое моего HTML:

IPS Ежегодный день

1 Ответ

2 голосов
/ 22 сентября 2019

Это строка, где у вас есть проблема

document.getElementsByClassName('.fc-title').innerHtml += calEvent.nonstandard.field1;

getElementsByClassName вернет объект в виде массива со всеми тегами, которые имеют класс, который вы указали.Массоподобный объект не имеет innerHTML.Теги, хранящиеся в объекте, подобном массиву, имеют innerHTML.Кроме того, я считаю, что у вас нет класса .fc-title, вместо этого у вас есть класс fc-title, наконец, убедитесь, что innerHTML напечатан правильно.Предлагаемое решение:

for (var element of document.getElementsByClassName('fc-title')) {
    element.innerHTML += calEvent.nonstandard.field1
}
...