Значение принимается не для всех элементов с нужным стилем
Здравствуйте!
Имеется множество div с определённым стилем. Когда я через js делаю стилю свойство "display: none;", то оно применяется не ко всем div, которые имеют этот стиль. Почему? И как это исправить? |
Наверное вы имеете ввиду класс?
Если так, то правила прописанные в классе не имеют силы только в том случае, если ниже в таблице стилей, либо в атрибуте "style" самого элемента, прописаны перекрывающие значения. Что бы правила прописанные в классе перекрывали и их, можно(хотя и не рекомендуется) добавить "!important":
.class{
display: none !important;
}
|
Да, точно, имеется ввиду class.
!Important - я пробовал, там не совсем в этом дело. Напишу подробнее суть всего действа. Есть на странице комментарии с разным рейтингом. Каждый div комментария с определённым рейтингом, я пометил своим class. Используя select, хочу при выборе например положительного рейтинга - оставлять на странице только комментарии с положительным рейтингом, остальные скрывать. Если выбирать отрицательные, то показывать отрицательные, а остальные скрывать и т.д. Я придумал, что мы добавляем к нужному class значение "display: none;", чтобы скрывать ненужные комментарии. А потом возвращать в "display: block;", когда будет сделан такой выбор в select. Но почему-то не работает. Вот код: <select onChange="Selected(this)"> <option value="0" >Все</option> <option value="1" >Плюсовые</option> <option value="2" >Минусовые</option> </select>
function Selected(a) {
var label = a.value;
if (label==1) {
document.querySelector('.plus').style.display='block';
document.querySelector('.minus').style.display='none';
document.querySelector('.netral').style.display='none';
} else if (label==2) {
document.querySelector('.plus').style.display='none';
document.querySelector('.minus').style.display='block';
document.querySelector('.netral').style.display='none';
} else {
document.querySelector('.plus').style.display='block';
document.querySelector('.minus').style.display='block';
document.querySelector('.netral').style.display='block';
}
}
В итоге, это срабатывает только для одного div. А все остальные не обрабатываются. |
https://developer.mozilla.org/ru/doc...erySelectorAll
доку читать между ол и единичным |
querySelectorAll() |
Так совсем не работает ничего:
<script>
function Selected(a) {
var label = a.value;
if (label==1) {
document.querySelectorAll('.plus').style.display='block';
document.querySelectorAll('.minus').style.display='none';
document.querySelectorAll('.netral').style.display='none';
} else if (label==2) {
document.querySelectorAll('.pluss').style.display='none';
document.querySelectorAll('.minus').style.display='block';
document.querySelectorAll('.netral').style.display='none';
} else {
document.querySelectorAll('.plus').style.display='block';
document.querySelectorAll('.minus').style.display='block';
document.querySelectorAll('.netral').style.display='block';
}
}
</script>
|
| Часовой пояс GMT +3, время: 03:21. |