Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 08.11.2016, 22:36
Аватар для Synth
Интересующийся
Отправить личное сообщение для Synth Посмотреть профиль Найти все сообщения от Synth
 
Регистрация: 16.10.2015
Сообщений: 16

Значение принимается не для всех элементов с нужным стилем
Здравствуйте!

Имеется множество div с определённым стилем. Когда я через js делаю стилю свойство "display: none;", то оно применяется не ко всем div, которые имеют этот стиль. Почему? И как это исправить?
Ответить с цитированием
  #2 (permalink)  
Старый 09.11.2016, 01:26
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 6,590

Наверное вы имеете ввиду класс?
Если так, то правила прописанные в классе не имеют силы только в том случае, если ниже в таблице стилей, либо в атрибуте "style" самого элемента, прописаны перекрывающие значения.
Что бы правила прописанные в классе перекрывали и их, можно(хотя и не рекомендуется) добавить "!important":
.class{
    display: none !important;
}
__________________
29375, 35
Ответить с цитированием
  #3 (permalink)  
Старый 09.11.2016, 19:25
Аватар для Synth
Интересующийся
Отправить личное сообщение для Synth Посмотреть профиль Найти все сообщения от Synth
 
Регистрация: 16.10.2015
Сообщений: 16

Да, точно, имеется ввиду 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. А все остальные не обрабатываются.

Последний раз редактировалось Synth, 10.11.2016 в 16:03.
Ответить с цитированием
  #4 (permalink)  
Старый 09.11.2016, 19:35
rtc rtc вне форума
Интересующийся
Отправить личное сообщение для rtc Посмотреть профиль Найти все сообщения от rtc
 
Регистрация: 08.05.2015
Сообщений: 17

https://developer.mozilla.org/ru/doc...erySelectorAll
доку читать между ол и единичным
Ответить с цитированием
  #5 (permalink)  
Старый 09.11.2016, 20:25
Аспирант
Отправить личное сообщение для Ostic Посмотреть профиль Найти все сообщения от Ostic
 
Регистрация: 31.08.2016
Сообщений: 49

querySelectorAll()
Ответить с цитированием
  #6 (permalink)  
Старый 10.11.2016, 16:04
Аватар для Synth
Интересующийся
Отправить личное сообщение для Synth Посмотреть профиль Найти все сообщения от Synth
 
Регистрация: 16.10.2015
Сообщений: 16

Так совсем не работает ничего:

<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>
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Hover для элементов списка с одинаковым номером Gera Herbst (X)HTML/CSS 2 21.12.2015 19:46
Как назначить одну и ту же клавиатурную комбинацию для двух элементов? Szorstki Элементы интерфейса 1 21.11.2015 07:15
Посчитать сумму ширины всех элементов в наборе без использования цикла Alex_D181 jQuery 7 10.06.2015 15:36
Метод для конвертирования едениц px, em, %, pt. jegit Элементы интерфейса 0 07.03.2013 16:15
Событие change для всех элементов exvion jQuery 2 25.01.2010 18:18