Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Скрыть элемент в зависимости от содержимого (https://javascript.ru/forum/dom-window/73297-skryt-ehlement-v-zavisimosti-ot-soderzhimogo.html)

310 04.04.2018 17:57

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

не срабатывает.
Прошу помощи

laimas 04.04.2018 18:00

Цитата:

Сообщение от 310
if (parseInt(text) == 'г. Ростов-на-Дону')

А как может быть результат возвращаемый parseInt равен строковому значению?

Откуда и что пытаемся сравнить?

310 04.04.2018 18:05

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

то нужно скрыть li.main_li

laimas 04.04.2018 18:08

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

    });

j0hnik 04.04.2018 18:15

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

аналог
if (false)

:D

310 05.04.2018 11:25

Опишу подробнее
<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();

	    });

:no: не работает
:help: :help:

laimas 05.04.2018 12:29

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

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


Остальная "неработа" может быть связана с некорректной установкой обработчика. Вот только зачем эта проверка на содержимое если "в модальном окне выбирается город"? А если сотни городов, что так и будет перечислять в куче условий?

310 05.04.2018 12:58

Всего два города и больше не будет.
Цитата:

Остальная "неработа" может быть связана с некорректной установкой обработчика.
Как найти ошибку?

laimas 05.04.2018 13:06

Цитата:

Сообщение от 310
Как найти ошибку?

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

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


и ваши ссылки есть на странице, и их текст равен опрашиваемому, то будет работать. Но если всего две ссылки, а значит скорее всего знаем, что первая, это обязательно Ростов, то можно и по индексу работать.

310 06.04.2018 08:25

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


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