meekes
@meekes
Стажер

Почему не работает js код в файле со всеми скиптами?

Есть скрипт который добавляет css к ссылке, он не работает если я вставляю это в код со всеми другими скриптами.
Файл со скриптами подгружается все скрипты работают кроме этого
(function($) {
try{
var el=document.getElementById('msgText').getElementsByTagName('a');
var url=document.location.href;
for(var i=0;i<el.length; i++){
if (url==el[i].href){
el[i].className += ' act';
};
};
}catch(e){}
})(jQuery);


Если я вставляю код сразу в html, скрипт работает.
<script type="text/javascript">
try{
var el=document.getElementById('msgText').getElementsByTagName('a');
var url=document.location.href;
for(var i=0;i<el.length; i++){
if (url==el[i].href){
el[i].className += ' act';
};
};
}catch(e){}
</script>
  • Вопрос задан
  • 108 просмотров
Пригласить эксперта
Ответы на вопрос 1
Если ваш код не использует jQuery, то не сто́ит его вставлять в анонимную самовызываемую функцию, предназначенную для выполнения jQuery-кода.

Попробуйте сделать так:
window.addEventListener('DOMContentLoaded', function () {
	try {
		const url = document.location.href;
		const $elements = document.getElementById('msgText').getElementsByTagName('a');
		$elements.forEach($el => {
			if (url === $el.getAttribute('href')) {
				$el.classList.add('act');
			}
		});
	} catch(e) {}
});
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы