Как отображать новое сообщение каждый месяц в течение 20 месяцев подряд

Я надеюсь, что кто-то может помочь мне с решением этой проблемы. Я пишу JavaScript для отображения одного из 20 приветствий каждый месяц в течение 20 месяцев подряд, прежде чем приветствия начнутся заново. Ниже представлен массив GreetingDetails:

    var GreetingDetails = [
    {// index0
        Greeting: "Foreign Greeting 0",
        Language: "Foreign Language",
        Translation: "English Translation",
        AudioPath: "/Content/Greetings/Pronunciation0.mp3",
        CommerceLink: link
    }, // index0
    {// index1
        Greeting: "Foreign Greeting 1",
        Language: "Foreign Language",
        Translation: "English Translation",
        AudioPath: "/Content/Greetings/Pronunciation1.mp3",
        CommerceLink: link
    }, // index1
    {// index2
        Greeting: "Foreign Greeting 2",
        Language: "Foreign Language",
        Translation: "English Translation",
        AudioPath: "/Content/Greetings/Pronunciation2.mp3",
        CommerceLink: link
    }, // index2
    {// index3
        Greeting: "Foreign Greeting 3",
        Language: "Foreign Language",
        Translation: "English Translation",
        AudioPath: "/Content/Greetings/Pronunciation3.mp3",
        CommerceLink: link
    }, // index3
    {// index4
        Greeting: "Foreign Greeting 4",
        Language: "Foreign Language",
        Translation: "English Translation",
        AudioPath: "/Content/Greetings/Pronunciation4.mp3",
        CommerceLink: link
    }, // index4
    {// index5
        Greeting: "Foreign Greeting 5",
        Language: "Foreign Language",
        Translation: "English Translation",
        AudioPath: "/Content/Greetings/Pronunciation5.mp3",
        CommerceLink: link
    }, // index5
    {// index6
        Greeting: "Foreign Greeting 6",
        Language: "Foreign Language",
        Translation: "English Translation",
        AudioPath: "/Content/Greetings/Pronunciation6.mp3",
        CommerceLink: link
    }, // index6
    {// index7
        Greeting: "Foreign Greeting 7",
        Language: "Foreign Language",
        Translation: "English Translation",
        AudioPath: "/Content/Greetings/Pronunciation7.mp3",
        CommerceLink: link
    }, // index7
    {// index8
        Greeting: "Foreign Greeting 8",
        Language: "Foreign Language",
        Translation: "English Translation",
        AudioPath: "/Content/Greetings/Pronunciation8.mp3",
        CommerceLink: link
    }, // index8
    {// index9
        Greeting: "Foreign Greeting 9",
        Language: "Foreign Language",
        Translation: "English Translation",
        AudioPath: "/Content/Greetings/Pronunciation9.mp3",
        CommerceLink: link
    }, // index9
    {// index10
        Greeting: "Foreign Greeting 10",
        Language: "Foreign Language",
        Translation: "English Translation",
        AudioPath: "/Content/Greetings/Pronunciation10.mp3",
        CommerceLink: link
    }, // index10
    {// index11
        Greeting: "Foreign Greeting 11",
        Language: "Foreign Language",
        Translation: "English Translation",
        AudioPath: "/Content/Greetings/Pronunciation11.mp3",
        CommerceLink: link
    }, // index11
    {// index12
        Greeting: "Foreign Greeting 12",
        Language: "Foreign Language",
        Translation: "English Translation",
        AudioPath: "/Content/Greetings/Pronunciation12.mp3",
        CommerceLink: link
    }, // index12
    {// index13
        Greeting: "Foreign Greeting 13",
        Language: "Foreign Language",
        Translation: "English Translation",
        AudioPath: "/Content/Greetings/Pronunciation13.mp3",
        CommerceLink: link
    }, // index13
    {// index14
        Greeting: "Foreign Greeting 14",
        Language: "Foreign Language",
        Translation: "English Translation",
        AudioPath: "/Content/Greetings/Pronunciation14.mp3",
        CommerceLink: link
    }, // index14
    {// index15
        Greeting: "Foreign Greeting 15",
        Language: "Foreign Language",
        Translation: "English Translation",
        AudioPath: "/Content/Greetings/Pronunciation15.mp3",
        CommerceLink: link
    }, // index15
    {// index16
        Greeting: "Foreign Greeting 16",
        Language: "Foreign Language",
        Translation: "English Translation",
        AudioPath: "/Content/Greetings/Pronunciation16.mp3",
        CommerceLink: link
    }, // index16
    {// index17
        Greeting: "Foreign Greeting 17",
        Language: "Foreign Language",
        Translation: "English Translation",
        AudioPath: "/Content/Greetings/Pronunciation17.mp3",
        CommerceLink: link
    }, // index17
    {// index18
        Greeting: "Foreign Greeting 18",
        Language: "Foreign Language",
        Translation: "English Translation",
        AudioPath: "/Content/Greetings/Pronunciation18.mp3",
        CommerceLink: link
    }, // index18
    {// index19
        Greeting: "Foreign Greeting 19",
        Language: "Foreign Language",
        Translation: "English Translation",
        AudioPath: "/Content/Greetings/Pronunciation19.mp3",
        CommerceLink: link
    } // index19
];

Я пробовал несколько разных способов, проверяя получение каждого приветствия, но продолжаю сталкиваться с проблемой получения только 12. 12, поскольку в году 12 месяцев, и я проверяю месяц для сравнения в цикле for. Я хочу сделать это как можно более динамичным, чтобы никому не пришлось прикасаться снова. Вот моя самая успешная попытка сравнения дат:

var m = ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September','October', 'November', 'December'];

var y = [];
var d = new Date();
//var test = new Date(2020, 1, 1);

// This for loop adds the years to the y-array
for (var i = 0; i < addYears; i++) {
    y.push(startYear++);
}

//alert(m.length);
//alert(y.length);
for (var i = 0; i < y.length; i++) {
    if (d.getFullYear() === y[i]) {
        for (var j = 0; j < GreetingDetails.length; j++) {
            if (m[d.getMonth()] === m[j]) {
                GreetingBuilder = GreetingDetails[j];
            }
        }
    }
}

var GreetingBuilder;
GreetingElements = {
    topSection: function () {
        var holder = document.createElement("section");
        holder.id = "required-greeting";
        return holder;
    },
    accessabilityP: function () {
        var holder = document.createElement("p");
        holder.classList.add("visuallyhidden");
        holder.innerText = "The following is a greeting given in one of 20 foreign languages.";
        return holder;
    },
    greetingContainer: function () {
        var holder = document.createElement("dl");
        holder.id = "language-greeting";
        return holder;
    },
    greetingDT: function () {
        var holder = document.createElement("dt");
        holder.classList.add("greeting");
        return holder;
    },
    greetingLink: function () {
        var holder = document.createElement("a")
        holder.href = GreetingBuilder.CommerceLink;
        holder.classList.add("language-link");
        holder.text = GreetingBuilder.Greeting;
        return holder;
    },
    audioContainer: function () {
        var holder = document.createElement("dd");
        holder.classList.add("speaker");
        return holder;
    },
    audioPlayer: function () {
        var holder = document.createElement("audio");
        holder.id = GreetingBuilder.Language.toLowerCase().replace(" ", "-");
        holder.src = GreetingBuilder.AudioPath;
        holder.preload = "auto";
        return holder;
    },
    audioButton: function () {
        var holder = document.createElement("button");
        holder.classList.add("pronunciation");
        holder.onclick = function () {
            document.getElementById(GreetingElements.audioPlayer().id).play();
        };
        holder.innerText = "Listen to pronunciation";
        return holder;
    },
    languageNameDD: function () {
        var holder = document.createElement("dd");
        holder.classList.add("language");
        holder.innerText = "(" + GreetingBuilder.Language + ")";
        return holder;
    },
    languageTranslationDD: function () {
        var holder = document.createElement("dd");
        holder.classList.add("translation");
        holder.innerText = '"' + GreetingBuilder.Translation + '"';
        return holder;
    },
    getFullGreetingSection: function () {
        var sectionInstance = this.topSection();
        var greetingDTInstance = this.greetingDT();
        var greetingContainerInstance = this.greetingContainer();
        var audioContainerInstance = this.audioContainer();


        greetingDTInstance.appendChild(this.greetingLink());
        greetingContainerInstance.appendChild(greetingDTInstance);

        audioContainerInstance.appendChild(this.audioPlayer());
        audioContainerInstance.appendChild(this.audioButton());

        greetingContainerInstance.appendChild(audioContainerInstance);
        greetingContainerInstance.appendChild(this.languageNameDD());
        greetingContainerInstance.appendChild(this.languageTranslationDD());

        sectionInstance.appendChild(this.accessabilityP());
        sectionInstance.appendChild(greetingContainerInstance);


        return sectionInstance;
    }
}

document.getElementsByClassName("back-to-top")[0].insertAdjacentElement('afterend', GreetingElements.getFullGreetingSection());

Если вы видите что-то, что я сделал неправильно, пожалуйста, дайте мне знать. Я уверен, что есть лучший способ сделать это, поэтому любая помощь будет принята с благодарностью.


person NMeneses    schedule 29.01.2020    source источник
comment
Кажется, что (year * 12 + month) % 20 — это все, что вам нужно для получения индекса.   -  person Scott Sauyet    schedule 31.01.2020


Ответы (4)


Назовите дату в прошлом, от которой можно отсчитывать месяцы. Затем возьмите месяцы, прошедшие с тех пор, и измените их на длину массива приветствий.

Попробуйте настроить «pasdDate», чтобы имитировать течение времени и получить разные приветствия.

var greetings = [0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19].map (x=> "Greeting #" + x);

var currentDate = new Date();
var pastDate = new Date("2018-10-01"); // pick arbitrary point in past as the "first" month

var differenceInYears = currentDate.getYear() - pastDate.getYear(); // 20 years ago

var index = differenceInYears * 12 + currentDate.getMonth() - pastDate.getMonth(); // how many months ago we "started" counting

console.log(greetings[index%greetings.length]);

person Ferenc    schedule 29.01.2020

var basedate = new Date(2020, 00);



function monthDiff(dateFrom, dateTo) {
  return dateTo.getMonth() - dateFrom.getMonth() +
    (12 * (dateTo.getFullYear() - dateFrom.getFullYear()))
}

function showmessage() {

  var curdate = new Date($('#curdate').val());
  var diff = monthDiff(basedate, curdate);
  
  
  while(diff > 19){
   diff = diff - 19;
  }

  $('#output').append('<div>Greeting: ' + GreetingDetails[diff].Greeting + '</div>');
}

var link = '';
var GreetingDetails = [{ // index0
    Greeting: "Foreign Greeting 0",
    Language: "Foreign Language",
    Translation: "English Translation",
    AudioPath: "/Content/Greetings/Pronunciation0.mp3",
    CommerceLink: link
  }, // index0
  { // index1
    Greeting: "Foreign Greeting 1",
    Language: "Foreign Language",
    Translation: "English Translation",
    AudioPath: "/Content/Greetings/Pronunciation1.mp3",
    CommerceLink: link
  }, // index1
  { // index2
    Greeting: "Foreign Greeting 2",
    Language: "Foreign Language",
    Translation: "English Translation",
    AudioPath: "/Content/Greetings/Pronunciation2.mp3",
    CommerceLink: link
  }, // index2
  { // index3
    Greeting: "Foreign Greeting 3",
    Language: "Foreign Language",
    Translation: "English Translation",
    AudioPath: "/Content/Greetings/Pronunciation3.mp3",
    CommerceLink: link
  }, // index3
  { // index4
    Greeting: "Foreign Greeting 4",
    Language: "Foreign Language",
    Translation: "English Translation",
    AudioPath: "/Content/Greetings/Pronunciation4.mp3",
    CommerceLink: link
  }, // index4
  { // index5
    Greeting: "Foreign Greeting 5",
    Language: "Foreign Language",
    Translation: "English Translation",
    AudioPath: "/Content/Greetings/Pronunciation5.mp3",
    CommerceLink: link
  }, // index5
  { // index6
    Greeting: "Foreign Greeting 6",
    Language: "Foreign Language",
    Translation: "English Translation",
    AudioPath: "/Content/Greetings/Pronunciation6.mp3",
    CommerceLink: link
  }, // index6
  { // index7
    Greeting: "Foreign Greeting 7",
    Language: "Foreign Language",
    Translation: "English Translation",
    AudioPath: "/Content/Greetings/Pronunciation7.mp3",
    CommerceLink: link
  }, // index7
  { // index8
    Greeting: "Foreign Greeting 8",
    Language: "Foreign Language",
    Translation: "English Translation",
    AudioPath: "/Content/Greetings/Pronunciation8.mp3",
    CommerceLink: link
  }, // index8
  { // index9
    Greeting: "Foreign Greeting 9",
    Language: "Foreign Language",
    Translation: "English Translation",
    AudioPath: "/Content/Greetings/Pronunciation9.mp3",
    CommerceLink: link
  }, // index9
  { // index10
    Greeting: "Foreign Greeting 10",
    Language: "Foreign Language",
    Translation: "English Translation",
    AudioPath: "/Content/Greetings/Pronunciation10.mp3",
    CommerceLink: link
  }, // index10
  { // index11
    Greeting: "Foreign Greeting 11",
    Language: "Foreign Language",
    Translation: "English Translation",
    AudioPath: "/Content/Greetings/Pronunciation11.mp3",
    CommerceLink: link
  }, // index11
  { // index12
    Greeting: "Foreign Greeting 12",
    Language: "Foreign Language",
    Translation: "English Translation",
    AudioPath: "/Content/Greetings/Pronunciation12.mp3",
    CommerceLink: link
  }, // index12
  { // index13
    Greeting: "Foreign Greeting 13",
    Language: "Foreign Language",
    Translation: "English Translation",
    AudioPath: "/Content/Greetings/Pronunciation13.mp3",
    CommerceLink: link
  }, // index13
  { // index14
    Greeting: "Foreign Greeting 14",
    Language: "Foreign Language",
    Translation: "English Translation",
    AudioPath: "/Content/Greetings/Pronunciation14.mp3",
    CommerceLink: link
  }, // index14
  { // index15
    Greeting: "Foreign Greeting 15",
    Language: "Foreign Language",
    Translation: "English Translation",
    AudioPath: "/Content/Greetings/Pronunciation15.mp3",
    CommerceLink: link
  }, // index15
  { // index16
    Greeting: "Foreign Greeting 16",
    Language: "Foreign Language",
    Translation: "English Translation",
    AudioPath: "/Content/Greetings/Pronunciation16.mp3",
    CommerceLink: link
  }, // index16
  { // index17
    Greeting: "Foreign Greeting 17",
    Language: "Foreign Language",
    Translation: "English Translation",
    AudioPath: "/Content/Greetings/Pronunciation17.mp3",
    CommerceLink: link
  }, // index17
  { // index18
    Greeting: "Foreign Greeting 18",
    Language: "Foreign Language",
    Translation: "English Translation",
    AudioPath: "/Content/Greetings/Pronunciation18.mp3",
    CommerceLink: link
  }, // index18
  { // index19
    Greeting: "Foreign Greeting 19",
    Language: "Foreign Language",
    Translation: "English Translation",
    AudioPath: "/Content/Greetings/Pronunciation19.mp3",
    CommerceLink: link
  } // index19
];
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<input type='date' id="curdate" />
<button type="button" onclick='showmessage()'>Show</button>

<div id="output">
</div>

Вам нужна базовая дата, чтобы решить, какой месяц равен 0. Затем вам нужна разница в месяце между текущим месяцем и базовым месяцем. Если разница больше 20, вычтите 20. Я использовал цикл while, чтобы продолжать вычитать 20, пока разница не перестанет превышать 20. Используйте число как индекс вашего массива приветствий GreetingDetails[diff].

Вот пример (рабочего рекламного кода) кода, основанный на вашем приветствии. Вы выбираете дату (как на текущую дату в будущем).

person Nawed Khan    schedule 29.01.2020

Всего 12 месяцев, то есть всего 12 уникальных значений для работы, а нужно 20? Используйте год!

2020 = 0
2021 = 1

Таким образом, ваш 13-й месяц будет в январе 2021 года или 12+1 и так далее.

Возьмите текущий год и вычтите 2020. Добавьте это к текущему месяцу. Оберните значение между 0 и 19.

person Phaelax z    schedule 29.01.2020

Прежде всего, позвольте мне поблагодарить всех, кто ответил. Ваша проницательность помогла мне понять, что я делаю не так.

Я нашел ответ в ответе Навед Хана и Ференца. Я подумал, что нужны математические расчеты с годами и месяцами, но не мог придумать формулу, которую можно было бы использовать. Я использовал формулу в методе monthDiff() Хана, так как предпочитал разбивать формулу на две части.

var diff = todayDate.getMonth() - startDate.getMonth() + (12 * (todayDate.getFullYear() - startDate.getFullYear()));

После этого, как и он в своем ответе, я назначил diff индексом GreetingDetails... GreetingDetails[diff] и, альт, произошло волшебство. Какое-то время это прекрасно работало... пока я не достиг возраста 20 лет, после чего я начал получать неправильное приветствие. Проблема заключалась в цикле while в ответе Хана. Поэтому я изменил его, чтобы вычесть GreetingDetails.length (длина 20), и каждый раз получал правильное приветствие.

while (diff >= GreetingDetails.length) {
    diff -= GreetingDetails.length;
}

Это также поможет позже, если количество приветствий в GreetingDetails[] изменится. Мне нужно было, чтобы это было как можно более динамичным, поэтому это должен быть лучший способ сделать это таким. Таким образом, нужно будет изменить только детали приветствия и ничего больше.

Хотя Хан и Ференц немного ошиблись в этой формуле, я голосую за них, чтобы отдать им должное, поскольку я использовал их ответы, чтобы сформулировать решение моей проблемы.

Полный JS ниже:

    var todayDate = new Date();
    var startDate = new Date(2020, 0)
    var diff = todayDate.getMonth() - startDate.getMonth() + (12 * (todayDate.getFullYear() - startDate.getFullYear()));
    var link = "url";
    var GreetingBuilder;
    var GreetingDetails = [
        {// index0
            Greeting: "Foreign Greeting 0",
            Language: "Foreign Language",
            Translation: "English Translation",
            AudioPath: "/Content/Greetings/Pronunciation0.mp3",
            CommerceLink: link
        }, // index0
        {// index1
            Greeting: "Foreign Greeting 1",
            Language: "Foreign Language",
            Translation: "English Translation",
            AudioPath: "/Content/Greetings/Pronunciation1.mp3",
            CommerceLink: link
        }, // index1
        {// index2
            Greeting: "Foreign Greeting 2",
            Language: "Foreign Language",
            Translation: "English Translation",
            AudioPath: "/Content/Greetings/Pronunciation2.mp3",
            CommerceLink: link
        }, // index2
        {// index3
            Greeting: "Foreign Greeting 3",
            Language: "Foreign Language",
            Translation: "English Translation",
            AudioPath: "/Content/Greetings/Pronunciation3.mp3",
            CommerceLink: link
        }, // index3
        {// index4
            Greeting: "Foreign Greeting 4",
            Language: "Foreign Language",
            Translation: "English Translation",
            AudioPath: "/Content/Greetings/Pronunciation4.mp3",
            CommerceLink: link
        }, // index4
        {// index5
            Greeting: "Foreign Greeting 5",
            Language: "Foreign Language",
            Translation: "English Translation",
            AudioPath: "/Content/Greetings/Pronunciation5.mp3",
            CommerceLink: link
        }, // index5
        {// index6
            Greeting: "Foreign Greeting 6",
            Language: "Foreign Language",
            Translation: "English Translation",
            AudioPath: "/Content/Greetings/Pronunciation6.mp3",
            CommerceLink: link
        }, // index6
        {// index7
            Greeting: "Foreign Greeting 7",
            Language: "Foreign Language",
            Translation: "English Translation",
            AudioPath: "/Content/Greetings/Pronunciation7.mp3",
            CommerceLink: link
        }, // index7
        {// index8
            Greeting: "Foreign Greeting 8",
            Language: "Foreign Language",
            Translation: "English Translation",
            AudioPath: "/Content/Greetings/Pronunciation8.mp3",
            CommerceLink: link
        }, // index8
        {// index9
            Greeting: "Foreign Greeting 9",
            Language: "Foreign Language",
            Translation: "English Translation",
            AudioPath: "/Content/Greetings/Pronunciation9.mp3",
            CommerceLink: link
        }, // index9
        {// index10
            Greeting: "Foreign Greeting 10",
            Language: "Foreign Language",
            Translation: "English Translation",
            AudioPath: "/Content/Greetings/Pronunciation10.mp3",
            CommerceLink: link
        }, // index10
        {// index11
            Greeting: "Foreign Greeting 11",
            Language: "Foreign Language",
            Translation: "English Translation",
            AudioPath: "/Content/Greetings/Pronunciation11.mp3",
            CommerceLink: link
        }, // index11
        {// index12
            Greeting: "Foreign Greeting 12",
            Language: "Foreign Language",
            Translation: "English Translation",
            AudioPath: "/Content/Greetings/Pronunciation12.mp3",
            CommerceLink: link
        }, // index12
        {// index13
            Greeting: "Foreign Greeting 13",
            Language: "Foreign Language",
            Translation: "English Translation",
            AudioPath: "/Content/Greetings/Pronunciation13.mp3",
            CommerceLink: link
        }, // index13
        {// index14
            Greeting: "Foreign Greeting 14",
            Language: "Foreign Language",
            Translation: "English Translation",
            AudioPath: "/Content/Greetings/Pronunciation14.mp3",
            CommerceLink: link
        }, // index14
        {// index15
            Greeting: "Foreign Greeting 15",
            Language: "Foreign Language",
            Translation: "English Translation",
            AudioPath: "/Content/Greetings/Pronunciation15.mp3",
            CommerceLink: link
        }, // index15
        {// index16
            Greeting: "Foreign Greeting 16",
            Language: "Foreign Language",
            Translation: "English Translation",
            AudioPath: "/Content/Greetings/Pronunciation16.mp3",
            CommerceLink: link
        }, // index16
        {// index17
            Greeting: "Foreign Greeting 17",
            Language: "Foreign Language",
            Translation: "English Translation",
            AudioPath: "/Content/Greetings/Pronunciation17.mp3",
            CommerceLink: link
        }, // index17
        {// index18
            Greeting: "Foreign Greeting 18",
            Language: "Foreign Language",
            Translation: "English Translation",
            AudioPath: "/Content/Greetings/Pronunciation18.mp3",
            CommerceLink: link
        }, // index18
        {// index19
            Greeting: "Foreign Greeting 19",
            Language: "Foreign Language",
            Translation: "English Translation",
            AudioPath: "/Content/Greetings/Pronunciation19.mp3",
            CommerceLink: link
        } // index19
    ];

    while (diff >= GreetingDetails.length) {
        diff -= GreetingDetails.length;
    }

    GreetingElements = {
        topSection: function () {
            var holder = document.createElement("section");
            holder.id = "required-greeting";
            return holder;
        },
        accessabilityP: function () {
            var holder = document.createElement("p");
            holder.classList.add("visuallyhidden");
            holder.innerText = "The following is a greeting given in one of 20 foreign languages.";
            return holder;
        },
        greetingContainer: function () {
            var holder = document.createElement("dl");
            holder.id = "language-greeting";
            return holder;
        },
        greetingDT: function () {
            var holder = document.createElement("dt");
            holder.classList.add("greeting");
            return holder;
        },
        greetingLink: function () {
            var holder = document.createElement("a")
            holder.href = GreetingBuilder.CommerceLink;
            holder.classList.add("language-link");
            holder.text = GreetingBuilder.Greeting;
            return holder;
        },
        audioContainer: function () {
            var holder = document.createElement("dd");
            holder.classList.add("speaker");
            return holder;
        },
        audioPlayer: function () {
            var holder = document.createElement("audio");
            holder.id = GreetingBuilder.Language.toLowerCase().replace(" ", "-");
            holder.src = GreetingBuilder.AudioPath;
            holder.preload = "auto";
            return holder;
        },
        audioButton: function () {
            var holder = document.createElement("button");
            holder.classList.add("pronunciation");
            holder.onclick = function () {
                document.getElementById(GreetingElements.audioPlayer().id).play();
            };
            holder.innerText = "Listen to pronunciation";
            return holder;
        },
        languageNameDD: function () {
            var holder = document.createElement("dd");
            holder.classList.add("language");
            holder.innerText = "(" + GreetingBuilder.Language + ")";
            return holder;
        },
        languageTranslationDD: function () {
            var holder = document.createElement("dd");
            holder.classList.add("translation");
            holder.innerText = '"' + GreetingBuilder.Translation + '"';
            return holder;
        },
        getFullGreetingSection: function () {
            var sectionInstance = this.topSection();
            var greetingDTInstance = this.greetingDT();
            var greetingContainerInstance = this.greetingContainer();
            var audioContainerInstance = this.audioContainer();


            greetingDTInstance.appendChild(this.greetingLink());
            greetingContainerInstance.appendChild(greetingDTInstance);

            audioContainerInstance.appendChild(this.audioPlayer());
            audioContainerInstance.appendChild(this.audioButton());

            greetingContainerInstance.appendChild(audioContainerInstance);
            greetingContainerInstance.appendChild(this.languageNameDD());
            greetingContainerInstance.appendChild(this.languageTranslationDD());

            sectionInstance.appendChild(this.accessabilityP());
            sectionInstance.appendChild(greetingContainerInstance);


            return sectionInstance;
        }
    }

    GreetingBuilder = GreetingDetails[diff];

    document.getElementsByClassName("back-to-top")[0].insertAdjacentElement('afterend', GreetingElements.getFullGreetingSection());

Я надеюсь, что это поможет кому-то в будущем!

person NMeneses    schedule 30.01.2020