Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #11 (permalink)  
Старый 24.06.2017, 23:09
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,070

Сообщение от DivMan
Вот я допустим ввожу 1
то есть массивы начинаются у вас с индекса 1 , а не ноль?
Ответить с цитированием
  #12 (permalink)  
Старый 24.06.2017, 23:12
Профессор
Отправить личное сообщение для DivMan Посмотреть профиль Найти все сообщения от DivMan
 
Регистрация: 08.03.2016
Сообщений: 429

Массивы начинаются с 0
Ответить с цитированием
  #13 (permalink)  
Старый 24.06.2017, 23:14
Профессор
Отправить личное сообщение для DivMan Посмотреть профиль Найти все сообщения от DivMan
 
Регистрация: 08.03.2016
Сообщений: 429

Когда ввожу 0, то появляется первый блок

if (input.value == i) img[i].classList.remove("hidden");


Но не понятно, почему он не удаляется, если в инпуте пусто, должно же сработать условие else, а оно почему-то не работает.
Ответить с цитированием
  #14 (permalink)  
Старый 24.06.2017, 23:25
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,070

DivMan,
alert("" == 0)
Ответить с цитированием
  #15 (permalink)  
Старый 24.06.2017, 23:29
Профессор
Отправить личное сообщение для DivMan Посмотреть профиль Найти все сообщения от DivMan
 
Регистрация: 08.03.2016
Сообщений: 429

Вот так, я полностью понимаю

<style>
.hidden {
      display: none;
    }
    .img {
      width: 200px;
      height: 200px;
    }
    .img1 {background: green;}
    .img2 {background: blue;}
    .img3 {background: red;}

</style>
<input type="text" class="input">
 
  <div class="img img1 hidden"></div>
  <div class="img img2 hidden"></div>
  <div class="img img3 hidden"></div>

<script>
var input = document.querySelector(".input");
var img = document.querySelectorAll(".img");


input.oninput = function() {
   
    img.forEach(function(element, i) {
    
    	if(input.value.length == 0) {
      	img[i].classList.add("hidden");
        return false;
      }
        if (input.value == i) {
        	img[i].classList.remove("hidden");
        }
        else {
        	img[i].classList.add("hidden");
        }
    })
};
</script>
Ответить с цитированием
  #16 (permalink)  
Старый 24.06.2017, 23:38
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,070

Сообщение от DivMan
Вот так, я полностью понимаю
Ответить с цитированием
  #17 (permalink)  
Старый 24.06.2017, 23:40
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,070

DivMan,
для 0 ... 1 ... 2
<html>
<head>
  <meta charset="utf-8">
  <style>
    .hidden {
      display: none;
    }
    .img {
      width: 200px;
      height: 200px;
    }
    .img1 {background: green;}
    .img2 {background: blue;}
    .img3 {background: red;}
  </style>
</head>
<body>
  <input type="text" class="input">

  <div class="img img1 hidden"></div>
  <div class="img img2 hidden"></div>
  <div class="img img3 hidden"></div>

  <script>
var input = document.querySelector(".input");
var img = document.querySelectorAll(".img");
input.oninput = function() {
    console.log(input.value);
    img.forEach(function(element, i) {
        if (input.value.trim() && input.value == i) img[i].classList.remove("hidden");
        else img[i].classList.add("hidden")
    })
};
  </script>
</body>
</html>
Ответить с цитированием
  #18 (permalink)  
Старый 25.06.2017, 00:10
Профессор
Отправить личное сообщение для DivMan Посмотреть профиль Найти все сообщения от DivMan
 
Регистрация: 08.03.2016
Сообщений: 429

То есть в поле, если всё стереть, то всё равно остаётся пробел?
Ответить с цитированием
  #19 (permalink)  
Старый 25.06.2017, 00:38
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,070

DivMan,
не пробел, а пустая строка.
Ответить с цитированием
  #20 (permalink)  
Старый 25.06.2017, 01:31
Профессор
Отправить личное сообщение для DivMan Посмотреть профиль Найти все сообщения от DivMan
 
Регистрация: 08.03.2016
Сообщений: 429

Всё таки наверно буду использовать мой вариант, он для меня понятней
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Динамическое копирование значения из input в input с одинаковыми атрибутами name ami_moor jQuery 2 10.08.2016 17:02
Проверка значения в input stepanenkoalex91 Events/DOM/Window 3 15.06.2016 14:22
Множественные значения в input - ЗА ВОЗНАГРАЖДЕНИЕ! Pb160 Events/DOM/Window 0 03.08.2015 12:29
Событие на input radio redwert Элементы интерфейса 3 23.09.2014 09:45
При добавлении DOCTYPE "плывут" размеры input type=text Demath (X)HTML/CSS 4 08.07.2012 19:27