Я пытаюсь получить элемент и изменить стиль по содержимому: если содержимое элемента «английский», то таблица стилей должна быть «ltr.css», в противном случае, если содержимое элемента «персидское», таблица стилей должна быть «rtl.css», вот что я имеют:
var lang = document.getElementById('languageChooser').innerHTML;
var el = document.getElementById("style1");
if(lang = 'Persian'){
el.href = "rtl.css";
} else (lang = 'English') {
el.href = "ltr.css";
}
<a href="#" id="languageChooser">Persian</a>
<link id="style1" rel="stylesheet" type="text/css" href="ltr.css" />
3 ответа
Вам нужно использовать ==
для сравнения. И чтобы использовать условие в else, вам нужно использовать else if
if(lang == 'Persian'){
el.href = "rtl.css";
} else if (lang == 'English') {
el.href = "ltr.css";
}
Используя jquery, вы определенно можете поменять файл css. Сделайте это при нажатии кнопки .
var selector = $('link[href*="ltr.css"]');
if(lang == 'Persian'){
selector.replaceWith('<link href="rtl.css" type="text/css" rel="stylesheet">');
}
else if (lang == 'English') {
selector.replaceWith('<link href="ltr.css" type="text/css" rel="stylesheet">');
}
Вы просто должны изменить атрибут элемента ссылки, как это
document.querySelector('link').setAttribute('href', 'ltr.css');
< Сильный > ИЗМЕНИТЬ
Убедитесь, что ваш скрипт выполняется после загрузки содержимого документа. (добавьте тег script
в конце html-файла или используйте атрибут сценария defer
, или используйте событие DOMContentLoaded
.
Новые вопросы
javascript
По вопросам программирования на ECMAScript (JavaScript / JS) и его различных диалектах / реализациях (кроме ActionScript). Включите все соответствующие теги в свой вопрос; например, [node.js], [jquery], [json] и т. д.