Как реализовать аналог $(document).ready на чистом JS?

466
12 декабря 2016, 10:07

Тоже самое только на JS. Как перевести?

$(document).ready(function(){
        $("#form_error_message_frontend + div > div:last-child label").addClass("last");
    })
Answer 1

Как-то так:

document.addEventListener('DOMContentLoaded', function(){ // Аналог $(document).ready(function(){
  // Если должен быть найден один элемент
  if((e = document.querySelector("#form_error_message_frontend + div > div:last-child label")) !== null)
    e.classList.add('last'); // Аналог выборки и присвоения класса
  // Если элементов будет много
  Array.prototype.forEach.call(document.querySelectorAll("#form_error_message_frontend + div > div:last-child label"), function(e){
   e.classList.add('last');
  });
});
Answer 2

хороший ответ есть здесь

90+% браузеров покроет вот такое решение для ожидания окончания загрузки

document.addEventListener("DOMContentLoaded", function(event) { 
  //do work
});

для 95+% браузеров можно использовать методы querySelector/querySelectorAll

var el = document.querySelector("#form_error_message_frontend + div > div:last-child label");
el.className += el.className ? ' last' : 'last'
READ ALSO
Найти ссылку по содержимому и заменить текст. Как сделать на JS?

Найти ссылку по содержимому и заменить текст. Как сделать на JS?

Нужно найти ссылку по тексту "Pages" и если такая ссылка присутствует на странице, тогда поменять ее текст на SponsorshipИнтересует реализация на jQuery...

391
jQuery: зависимость высота от контейнера

jQuery: зависимость высота от контейнера

Как сделать что если высотаcontainer больше высоты

301
Активный раздел в меню

Активный раздел в меню

Как можно на jQuery сделать, чтобы по переходу по ссылке к ней добавлялся класс active, а с предыдущей убирался? Чтобы в меню видеть, какой раздел...

269