Я знаю, что это хорошая практика для организации файлов путем их разделения на файлы. i.e, files.html и files.js. Тем не менее, я в последнее время смотрю на некоторые сайты и то, как их файлы организованы. Они, как правило, содержат крошечные фрагменты JavaScript, вставленные здесь и там внутри html-файла.Организация файлов HTML и JavaScript
Теперь эти файлы, как правило, организованы очень определенным образом, одна вещь, которую я заметил, - это то, что я не вижу большого количества document.getElementById(id)
или ids. Итак, мне любопытно узнать, что является лучшим способом захватить элементы с помощью JavaScript. Должен ли я захватить элементы в html-файле или в файле JavaScript и как?
Например, возьмите, например, вопрос, связанный с переполнением стека. Показаны аналогичные результаты. Что бы JavaScript будет выглядеть, если у меня есть что-то вроде следующего:
/*
SOMETHING LIKE THIS
but this would mean that I would have to grab the elements everytime
the event is fired (not sure this is a good idea)
*/
var question;
var similar_question;
var ask_your_question;
var maybe_already_answered;
Questions.checkSimilarQuestions = function(){
question = document.getElementById('question');
similar_questions = document.getElementById('similar');
ask_your_question = document.getElementById('aks-your-question');
maybe_already_answered = document.getElementById('maybe-already-answered');
}
/*
OR MAYBE SOMETHING LIKE THIS
*/
(function(){
var question = document.getElementById('question');
var similar_questions = document.getElementById('similar');
var ask_your_question = document.getElementById('aks-your-question');
var maybe_already_answered = document.getElementById('maybe-already-answered');
/*
Grab the rest of the elements and do something with them
*/
}())
<div id='ask-your-question'>
<input type='text' id='question'/>
<div id='maybe-already-answered'>
</div>
</div>
<div id='similar-questions'></div>
Спасибо за ответ. Ну, я думаю, что забыл упомянуть jQuery. Я не вижу столько jQuery ('selector'). Я думаю, это из-за того, что вы сказали ... переведите его в переменную. Но где я помещаю эти переменные, в объект или в одну единственную переменную? – Gacci
В качестве побочного элемента document.querySelector() и document.querySelectorAll() можно использовать в vanilla javascript для выбора узлов с использованием синтаксиса селектора jquery. – Shilly
Нет проблем. Это зависит от ваших предпочтений. Но даже если вам нравится функциональный JS больше, как и я, я бы добавил все элементы в объявленном глобально объявленным нотационным объекте (JSON). Это делает ваш код более понятным и понятным для будущего развития.Это также означает, что если вы что-то измените на веб-странице, вам нужно будет только изменить его. Лично я стараюсь не использовать jQuery, поскольку он намного медленнее и сложнее усложняет нечто относительно простое. – Niels