2012-06-21 4 views
0

У меня есть приложение html + css + javascript. Я хочу иметь возможность включить тематику.Изменение папки css из javascript

Все мои CSS реплицируются в двух папках:/theme1/... и/theme2/...

Так что мой HTML выглядит следующим образом:

<!DOCTYPE html> 
<html> 
    <head> 
     <link rel="stylesheet" href="theme1/file1.css"/> 
     <link rel="stylesheet" href="theme1/file2.css"/> 
     .... 
     .... 
    </head> 
    <body> 
    ..... 
    </body> 
</html> 

Я хочу, чтобы иметь возможность изменить используя javascript домашнюю папку css (theme1 to theme2).

Любые идеи?

+4

Много. [Что вы пробовали?] (Http://whathaveyoutried.com/) –

ответ

0

Вот что вам нужно будет решить эту проблему:

  • Получить соответствующие теги. В этом случае любой тег link с rel="stylesheet", вероятно, сделает, но вы можете даже зайти так далеко, чтобы указать «начиная с theme1», если хотите. Это можно сделать с помощью document.querySelectorAll("link[rel=stylesheet][href^=theme1]")
  • Пройдите через них. Простой цикл for будет хорошо.
  • getAttribute("href") получает строку, в которой вы нуждаетесь.
  • replace() позволит вам заменить часть нужной строки.
  • setAttribute("href",newattr) вернет атрибут в тег.
0
<link id="foo" rel="stylesheet" href="theme1/file1.css"/> 

Если вы хотите изменить тему:

document.getElementById('foo').href = 'theme1/file2.css'; 
+0

Это изменяет один файл. А как насчет других? –

+0

_ «Я хочу, чтобы иметь возможность изменять с помощью javascript домашнюю папку css (theme1 to theme2).» _ Я вообще не понял, что вы вообще комментируете. – gdoron

+0

Ну, для начала есть два тега 'link' в вопросе, которые нужно изменить, а' .... 'предполагает, что может быть больше. Во-вторых, вы меняете 'file1' на' file2', а не 'theme1' на' theme2'. –

Смежные вопросы