Javascript.RU

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

Вывод баннера при выполнении условия
День добрый. Подскажите, где ошибка в коде условия?

Цель:
При соответствии url выводится баннер в определенной товарной категории, в сайдбаре. То есть, к примеру если url страницы содержит директорию /zakrepochnye-mashiny, то для div с id="TestTest", менять display: none на display: block.

Код ниже выполняет замену display:none на block, но во всех категориях, то есть баннер сквозной получается

<div id="TestTest" style="display: none; background-color: #333; height: 200px">
</div>
<script>
if(window.location.pathname.indexOf('zakrepochnye-mashiny')) {
var foo = document.getElementById("TestTest");
if(foo) {
foo.style.display = 'block';
}
}
</script>
Ответить с цитированием
  #2 (permalink)  
Старый 12.12.2017, 07:46
Аватар для void()
Профессор
Отправить личное сообщение для void() Посмотреть профиль Найти все сообщения от void()
 
Регистрация: 11.08.2017
Сообщений: 208

Ошибка в том, что блоки у вас отражаются при условии, что существует блок с ID "TestTest". А так как он, очевидно, всегда существует, то и блок будет отображаться тоже всегда.
Так будет правильнее:

<div id="TestTest" style="display: none; background-color: #333; height: 200px">
</div>
<script>
if(window.location.pathname.indexOf('zakrepochnye-mashiny')) {
var foo = document.getElementById("TestTest");
foo.style.display = 'block';
}
</script>
Ответить с цитированием
  #3 (permalink)  
Старый 12.12.2017, 08:48
Новичок на форуме
Отправить личное сообщение для DenisReva Посмотреть профиль Найти все сообщения от DenisReva
 
Регистрация: 11.12.2017
Сообщений: 5

Чет все равно, не хочет работать как надо
Ответить с цитированием
  #4 (permalink)  
Старый 12.12.2017, 08:54
Аватар для void()
Профессор
Отправить личное сообщение для void() Посмотреть профиль Найти все сообщения от void()
 
Регистрация: 11.08.2017
Сообщений: 208

DenisReva,
<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>Document</title>
</head>
<body>
	<div id="TestTest" style="display: none; background-color: #333; height: 200px">
</div>
<script>
if(window.location.pathname.indexOf('TestTest') > -1) {
var foo = document.getElementById("TestTest");
foo.style.display = 'block';
}
</script>

</body>
</html>
Ответить с цитированием
  #5 (permalink)  
Старый 12.12.2017, 08:56
Новичок на форуме
Отправить личное сообщение для DenisReva Посмотреть профиль Найти все сообщения от DenisReva
 
Регистрация: 11.12.2017
Сообщений: 5

Условие проверки наличия директории в URL всегда true, почему то
Ответить с цитированием
  #6 (permalink)  
Старый 12.12.2017, 08:58
Аватар для void()
Профессор
Отправить личное сообщение для void() Посмотреть профиль Найти все сообщения от void()
 
Регистрация: 11.08.2017
Сообщений: 208

DenisReva,
Хм, у меня работает корректно, не получается получить такую проблему... Протестировал в Хроме и Мозилла.
Ответить с цитированием
  #7 (permalink)  
Старый 12.12.2017, 11:25
Новичок на форуме
Отправить личное сообщение для DenisReva Посмотреть профиль Найти все сообщения от DenisReva
 
Регистрация: 11.12.2017
Сообщений: 5

c > -1, работает) правда не понял в чем смысл, длина строки больше -1?
Ответить с цитированием
  #8 (permalink)  
Старый 12.12.2017, 12:38
Профессор
Отправить личное сообщение для Dilettante_Pro Посмотреть профиль Найти все сообщения от Dilettante_Pro
 
Регистрация: 27.11.2015
Сообщений: 2,899

DenisReva,
indexOf возвращает -1, если значение не найдено.
indexOf
Ответить с цитированием
  #9 (permalink)  
Старый 12.12.2017, 14:33
Новичок на форуме
Отправить личное сообщение для DenisReva Посмотреть профиль Найти все сообщения от DenisReva
 
Регистрация: 11.12.2017
Сообщений: 5

Сообщение от Dilettante_Pro Посмотреть сообщение
DenisReva,
indexOf возвращает -1, если значение не найдено.
indexOf
Ок
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Выполнение условия при >500px Quark_ Javascript под браузер 3 01.10.2016 14:19
Как восстановить инфу из sessionStorage при выполнении определенных условий? ligisayan jQuery 1 26.06.2015 09:34
Ускорение при выполнении setInterval.. Sweet Элементы интерфейса 6 17.03.2010 10:24
Вывод сообщения при нажатии MCTrane Общие вопросы Javascript 1 15.01.2010 16:09
Вывод данных единожды, при открытии окна? Ggorsh Events/DOM/Window 1 28.04.2009 01:04