Как я могу обнаружить DOM готовый и добавить класс без jQuery?

используйте представление, функцию или процедуру, которая проверяет is_deleted=0, т.е. не выбирают непосредственно на таблице в случае, если таблица должна измениться позже по другим причинам

и индексировать is_deleted столбец для больших таблиц

, так как у Вас уже есть журнал аудита, отслеживание даты удаления избыточно

20
задан alex 13 March 2013 в 22:38
поделиться

7 ответов

Если вы хотите воспроизвести событие jQuery document.ready , вы можете использовать события onreadystatechange или DOMContentLoaded , где это применимо. :

function domReady () {
  document.body.className += " javascript";
  // ...
}

// Mozilla, Opera, Webkit 
if ( document.addEventListener ) {
  document.addEventListener( "DOMContentLoaded", function(){
    document.removeEventListener( "DOMContentLoaded", arguments.callee, false);
    domReady();
  }, false );

// If IE event model is used
} else if ( document.attachEvent ) {
  // ensure firing before onload
  document.attachEvent("onreadystatechange", function(){
    if ( document.readyState === "complete" ) {
      document.detachEvent( "onreadystatechange", arguments.callee );
      domReady();
    }
  });
}
47
ответ дан 29 November 2019 в 23:17
поделиться

Я не знаю о ванильном JS, но вы можете написать:

document.getElementsByTagName('body')[0].className += ' javascript';

внизу страницы (перед закрытием тега body).

2
ответ дан 29 November 2019 в 23:17
поделиться

Если ваша цель - добавить класс в body сразу после загрузки страницы, возможно, чтобы скрыть элементы, не использующие JS-fallback, вы можете сделать это сразу же внутри тег body вместо ожидания каких-либо событий:

<body>
    <script type="text/javascript">
        document.body.className+= ' javascript';
    </script>

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

Это самый быстрый способ привязки к элементам: сделайте это сразу после их создания (внутри открытого тега, если вам нужно только изменить элементы; сразу после закрывающего тега, если вам нужно изменить их содержимое). Однако этот подход приводит к засорению страницы некрасивыми блоками