Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 04.04.2018, 17:57
310 310 вне форума
Интересующийся
Отправить личное сообщение для 310 Посмотреть профиль Найти все сообщения от 310
 
Регистрация: 21.07.2016
Сообщений: 23

Скрыть элемент в зависимости от содержимого
Здравствуйте, умные люди.
У меня такая задача:
Если выбран город "Ростов-на-Дону" в блоке.cityName, скрыть блок.main_li.
Код вот такой
jQuery(document).ready(function () {    
        var text = jQuery('.cityName').text();
        if (parseInt(text) == 'г. Ростов-на-Дону') {
            jQuery('.main_li').style.display = 'none';
        };
	});

не срабатывает.
Прошу помощи
Ответить с цитированием
  #2 (permalink)  
Старый 04.04.2018, 18:00
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,989

Сообщение от 310
if (parseInt(text) == 'г. Ростов-на-Дону')
А как может быть результат возвращаемый parseInt равен строковому значению?

Откуда и что пытаемся сравнить?
Ответить с цитированием
  #3 (permalink)  
Старый 04.04.2018, 18:05
310 310 вне форума
Интересующийся
Отправить личное сообщение для 310 Посмотреть профиль Найти все сообщения от 310
 
Регистрация: 21.07.2016
Сообщений: 23

Значения могут быть разные, но если вот так
<a class="jstore-tag cityName lsp-js-changeTerminalForm">г. Ростов-на-Дону</a>

то нужно скрыть li.main_li
Ответить с цитированием
  #4 (permalink)  
Старый 04.04.2018, 18:08
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,989

jQuery(document).ready(function () {   
        if (jQuery('.cityName').text() == 'г. Ростов-на-Дону') jQuery('.main_li').hide();

    });
Ответить с цитированием
  #5 (permalink)  
Старый 04.04.2018, 18:15
Аватар для j0hnik
Профессор
Отправить личное сообщение для j0hnik Посмотреть профиль Найти все сообщения от j0hnik
 
Регистрация: 01.12.2016
Сообщений: 3,650

if (parseInt(text) == 'г. Ростов-на-Дону')

аналог
if (false)

Ответить с цитированием
  #6 (permalink)  
Старый 05.04.2018, 11:25
310 310 вне форума
Интересующийся
Отправить личное сообщение для 310 Посмотреть профиль Найти все сообщения от 310
 
Регистрация: 21.07.2016
Сообщений: 23

Опишу подробнее
<div class="jstore-tag city-terminal-c">
        Ресторан:
        
        <a class="jstore-tag cityName lsp-js-changeTerminalForm">г. Ростов-на-Дону</a>
        
    </div>

По клику на ссылку в модальном окне выбирается город.
Я подумал повесить указанный выше скрипт на клик по ссылке
jQuery('.cityName').click(function () {  

	        if (jQuery('.cityName').text() == 'г. Ростов-на-Дону') jQuery('.main_li').hide();

	    });

не работает
Ответить с цитированием
  #7 (permalink)  
Старый 05.04.2018, 12:29
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,989

.cityName - это ссылка, а значит как минимум нужно отменять действие по умолчанию:

jQuery('.cityName').click(function (e) { 
    e.preventDefault(); 
    if (jQuery('.cityName').text() == 'г. Ростов-на-Дону') jQuery('.main_li').hide();
});


Остальная "неработа" может быть связана с некорректной установкой обработчика. Вот только зачем эта проверка на содержимое если "в модальном окне выбирается город"? А если сотни городов, что так и будет перечислять в куче условий?
Ответить с цитированием
  #8 (permalink)  
Старый 05.04.2018, 12:58
310 310 вне форума
Интересующийся
Отправить личное сообщение для 310 Посмотреть профиль Найти все сообщения от 310
 
Регистрация: 21.07.2016
Сообщений: 23

Всего два города и больше не будет.
Цитата:
Остальная "неработа" может быть связана с некорректной установкой обработчика.
Как найти ошибку?
Ответить с цитированием
  #9 (permalink)  
Старый 05.04.2018, 13:06
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,989

Сообщение от 310
Как найти ошибку?
Какую? Я же не знаю чего не работает. Если установка обработчика

jQuery(document).ready(function () {
    jQuery('.cityName').click(function (e) {
        e.preventDefault();
        if (jQuery('.cityName').text() == 'г. Ростов-на-Дону') jQuery('.main_li').hide();
    });
})


и ваши ссылки есть на странице, и их текст равен опрашиваемому, то будет работать. Но если всего две ссылки, а значит скорее всего знаем, что первая, это обязательно Ростов, то можно и по индексу работать.
Ответить с цитированием
  #10 (permalink)  
Старый 06.04.2018, 08:25
310 310 вне форума
Интересующийся
Отправить личное сообщение для 310 Посмотреть профиль Найти все сообщения от 310
 
Регистрация: 21.07.2016
Сообщений: 23

Да вроде все так, но то, что мне нужно, не происходит.
Не сочтите за труд, гляньте на страницу http://dimash24.ru/, пожалуйста
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Скрыть div - элемент по клику в наборе Kirill84 Events/DOM/Window 1 31.08.2016 15:33
Скрыть элемент при клике за его пределами. Алексей Петрович Элементы интерфейса 7 29.11.2015 13:29
Скрыть элемент, который идет по известной ссылке PlayHard Общие вопросы Javascript 5 25.08.2013 23:27
Скрыть элемент сверху вниз BigLes jQuery 8 06.06.2012 13:48
Скрыть элемент DZHETIGAPA Events/DOM/Window 1 05.07.2011 16:33