Я пытаюсь получить элемент и изменить стиль по содержимому: если содержимое элемента «английский», то таблица стилей должна быть «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" />
0
AghaFree

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 .

58568821