Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   Обратиться к стилю, описанному в svg (https://javascript.ru/forum/events/73208-obratitsya-k-stilyu-opisannomu-v-svg.html)

ioprst_ 29.03.2018 11:29

Обратиться к стилю, описанному в svg
 
Привет. Подскажите, пожалуйста.
В svg объявляю стиль:
<style type="text/css" id="default">
    .default_default {
      fill: #808080;
      stroke: #000000;
      stroke-width: 1px;
    }
   .default_on {
      fill: #00FF00;
      stroke: #000000;
      stroke-width: 1px;
    }
</style>

Существует ли какой-нибудь способ, чтобы обратиться напрямую к элементу, например, .default_on?
svgDoc.getElementById("default").textContent возвращает текст между тегами style, но вот парсить строку не очень удобно.
Мне необходимо это, чтобы в зависимости от некоторых условий svg элемент, например прямоугольник, становился либо серым (.default_default), либо зеленым (.default_on).
Вариант: через setAttribute присвоить атрибуту fill серую или зеленую заливку не подходит.

Dilettante_Pro 29.03.2018 12:32

:blink:
<style type="text/css" id="default">
    .default_default {
      fill: #808080;
      stroke: #000000;
      stroke-width: 1px;
    }
   .default_on {
      fill: #00FF00;
      stroke: #000000;
      stroke-width: 1px;
    }
</style>

<svg>  
<rect width="200" height="200" class="default_default"/>  
</svg>
<script>
setTimeout( function() {
  var el = document.querySelector('rect');
  el.classList.remove("default_default");
  el.classList.add("default_on");
}, 3000);
</script>

ioprst_ 30.03.2018 10:59

Dilettante_Pro, спасибо


Часовой пояс GMT +3, время: 21:08.