Javascript-форум (https://javascript.ru/forum/)
-   Javascript под браузер (https://javascript.ru/forum/css-html/)
-   -   Изменить стили элемента HTML с помощью JS (https://javascript.ru/forum/css-html/70471-izmenit-stili-ehlementa-html-s-pomoshhyu-js.html)

ser1ko 07.09.2017 16:33

Изменить стили элемента HTML с помощью JS
 
На сайте есть переменная $OTHER1$, числовое значение, которое я задаю вручную. Допустим, это значение = '3'

html код выглядит след. образом:

<div class="primer">
<span>1</span>, <span>2</span>, <span>3</span>, <span>4</span>, <span>5</span>.
</div>


Пользователь видит:

1, 2, 3, 4, 5.

Вопрос: как задать стили для <span>3</span>?
т.е. конкретно для <span>, внутри которого цифра = $OTHER1$. другие стили <span> задавать не нужно.

Nexus 07.09.2017 16:40

ser1ko, CSS:
.primer span:nth-child(2){
color:red;
}


JS:
document.querySelectorAll('.primer span')[1].style.color='red';

ksa 07.09.2017 16:41

Цитата:

Сообщение от ser1ko
как задать стили для <span>$OTHER1$</span>?

Как вариант...

<div class="primer">
	<span>1</span>, <span>$OTHER1$</span>, <span>3</span>.
</div>
<script type='text/javascript'>
var o=document.querySelector('.primer > span:nth-child(2)');
o.style.color='red';
</script>

рони 07.09.2017 16:41

ser1ko,
а css никак?

ser1ko 07.09.2017 16:52

Nexus,ksa, прошу прощения, немного перефразировал вопрос. варианты, что вы предложили, кажется, не совсем подходят

рони,не совсем понял, каким образом?

Nexus 07.09.2017 16:53

ser1ko,
var found=3,
elems=document.querySelectorAll('.primer > span');
for(var i=0;i<elems.length;i++){
if(parseInt(elems[i].innerHTML)==found){
elems[i].style.color='red';
break;
};
};

ser1ko 07.09.2017 16:59

Nexus,
да, кажется то, что нужно. а если мне нужно задать эти стили??

color: #fff;
border-color: #337ab7;
background: #337ab7;


этот вариант не работает

var found=3,
elems=document.querySelectorAll('.primer > span');
for(var i=0;i<elems.length;i++){
if(parseInt(elems[i].innerHTML)==found){
elems[i].style.color='#fff';
elems[i].style.border-color='#337ab7';
elems[i].style.background='#337ab7';
break;
};
};

Nexus 07.09.2017 17:02

ser1ko, если наименование свойства состоит из нескольких слов, то оно записывается в camelCase стиле.
https://learn.javascript.ru/styles-a...ство-style
Upd. Можно еще использовать свойство «cssText».

ser1ko 07.09.2017 17:09

Nexus,
через cssText сделал. Все работает, переделал под себя.
Большое спасибо!

рони 07.09.2017 17:25

Цитата:

Сообщение от ser1ko
рони,не совсем понял, каким образом?

смотри css, пример Nexus, пост№2


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