Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 23.11.2018, 10:49
Аспирант
Отправить личное сообщение для Aleksanderj Посмотреть профиль Найти все сообщения от Aleksanderj
 
Регистрация: 14.06.2013
Сообщений: 70

Как правильно проверить выбор select?
Доброго дня всем.
Нужно чтобы при выборе определенного option добавлялся или удалялся class. Метод
$('select').on('change', function () {
      var optionSelected = $("option:selected", this);
      var valueSelected = this.value;
      if (valueSelected == '.services-slide_one') {
         $("body").addClass("test");
      } else {
         $("body").removeClass("test");
      }
    });

почему то не работает.
Подскажите как можно такое реализовать?
Ответить с цитированием
  #2 (permalink)  
Старый 23.11.2018, 11:06
Профессор
Отправить личное сообщение для Nexus Посмотреть профиль Найти все сообщения от Nexus
 
Регистрация: 04.12.2012
Сообщений: 3,708

Мб так?
$('select').on('change', function() {
    document.body.classList[
        this.value == '.services-slide_one' ? 'add' : 'remove'
    ]('test');
});

Последний раз редактировалось Nexus, 23.11.2018 в 11:13.
Ответить с цитированием
  #3 (permalink)  
Старый 23.11.2018, 11:09
Профессор
Отправить личное сообщение для Dilettante_Pro Посмотреть профиль Найти все сообщения от Dilettante_Pro
 
Регистрация: 27.11.2015
Сообщений: 2,899

Aleksanderj,
А покажите ваш select
Ответить с цитированием
  #4 (permalink)  
Старый 23.11.2018, 11:10
Аспирант
Отправить личное сообщение для Aleksanderj Посмотреть профиль Найти все сообщения от Aleksanderj
 
Регистрация: 14.06.2013
Сообщений: 70

Сообщение от Nexus Посмотреть сообщение
Мб так?
$('select').on('change', function() {
    const has = this.options[this.selectedIndex].classList.contains('services-slide_one');

    document.body.classList[
        has ? 'add' : 'remove'
    ]('test');
});
Тоже не работает
Ответить с цитированием
  #5 (permalink)  
Старый 23.11.2018, 11:10
Аспирант
Отправить личное сообщение для Aleksanderj Посмотреть профиль Найти все сообщения от Aleksanderj
 
Регистрация: 14.06.2013
Сообщений: 70

Сообщение от Dilettante_Pro Посмотреть сообщение
Aleksanderj,
А покажите ваш select
<form class="filter">
	<div class="filter-group">				
	<select name="filter">				 
	  <option value=".services-slide_one">Все</option>
	  <option value=".evac">Эвакуатор</option>
	  <option value=".gruz">Грузоперевозки</option>				
	</select>
	 </div>
</form>
Ответить с цитированием
  #6 (permalink)  
Старый 23.11.2018, 11:11
Профессор
Отправить личное сообщение для Nexus Посмотреть профиль Найти все сообщения от Nexus
 
Регистрация: 04.12.2012
Сообщений: 3,708

Aleksanderj, опишите условие, по которому body должен класс добавляться. По-человечески.

upd. поправил пост №2
Ответить с цитированием
  #7 (permalink)  
Старый 23.11.2018, 11:16
Аватар для j0hnik
Профессор
Отправить личное сообщение для j0hnik Посмотреть профиль Найти все сообщения от j0hnik
 
Регистрация: 01.12.2016
Сообщений: 3,650

<script src="https://code.jquery.com/jquery-3.3.1.min.js"></script>
	<form class="filter">
	<div class="filter-group">				
	<select name="filter">				 
	  <option value=".services-slide_one">Все</option>
	  <option value=".evac">Эвакуатор</option>
	  <option value=".gruz">Грузоперевозки</option>				
	</select>
	 </div>
</form>
	<script>	

$('select').on('change', function () {
	document.body.className = this.value.slice('1');
});

	</script>
Ответить с цитированием
  #8 (permalink)  
Старый 23.11.2018, 11:19
Аватар для j0hnik
Профессор
Отправить личное сообщение для j0hnik Посмотреть профиль Найти все сообщения от j0hnik
 
Регистрация: 01.12.2016
Сообщений: 3,650

<script src="https://code.jquery.com/jquery-3.3.1.min.js"></script>
	<form class="filter">
	<div class="filter-group">				
	<select name="filter">				 
	  <option value="services-slide_one">Все</option>
	  <option value="evac">Эвакуатор</option>
	  <option value="gruz">Грузоперевозки</option>				
	</select>
	 </div>
</form>
	<script>	

$('select').on('change', function () {
	document.body.className = this.value;
});

	</script>


или точки уберите
Ответить с цитированием
  #9 (permalink)  
Старый 23.11.2018, 11:20
Аспирант
Отправить личное сообщение для Aleksanderj Посмотреть профиль Найти все сообщения от Aleksanderj
 
Регистрация: 14.06.2013
Сообщений: 70

Сообщение от Nexus Посмотреть сообщение
Aleksanderj, опишите условие, по которому body должен класс добавляться. По-человечески.

upd. поправил пост №2
Спасибо большое!
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как правильно получить и присвоить данные полученные из сервера Axios, react-redux hambat Общие вопросы Javascript 5 07.03.2017 17:09
Select, optionl, и автоматический выбор Rorbi Элементы интерфейса 2 29.05.2014 15:38
filter(this,this) как правильно сделать? Smip jQuery 5 23.02.2013 03:07
Как правильно прицепить обработку события slowklg Events/DOM/Window 6 15.03.2012 16:20
Как правильно очистить maxlength в input? Маэстро Events/DOM/Window 10 22.06.2011 18:14