Javascript.RU

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

Живой поиск, с помощью регулярных выражений
Почему не выводит ячейку из массива, если введённое значение совпадает?

http://plnkr.co/edit/bOMB2VuVEY64WgXZsjj3?p=preview
Ответить с цитированием
  #2 (permalink)  
Старый 16.11.2016, 17:57
Профессор
Отправить личное сообщение для Dilettante_Pro Посмотреть профиль Найти все сообщения от Dilettante_Pro
 
Регистрация: 27.11.2015
Сообщений: 2,899

Сложный человек,
Цитата:
При успехе метод search() возвращает индекс первого сопоставления с регулярным выражением внутри строки. В противном случае метод вернёт -1.
Так что не надо сравнивать его с input.value
Ответить с цитированием
  #3 (permalink)  
Старый 16.11.2016, 18:02
Аватар для Coriolan161
Профессор
Отправить личное сообщение для Coriolan161 Посмотреть профиль Найти все сообщения от Coriolan161
 
Регистрация: 21.11.2015
Сообщений: 440

Сложный человек,
1) Он не понимает кто такой input в
Цитата:
input.addEventListener('...')
2) Не создавай элементы в цикле!!!
3) На
Изображения:
Тип файла: jpg Снимок экрана 2016-11-16 в 18.00.58.jpg (10.4 Кб, 7 просмотров)
Ответить с цитированием
  #4 (permalink)  
Старый 16.11.2016, 18:19
Профессор
Отправить личное сообщение для Dilettante_Pro Посмотреть профиль Найти все сообщения от Dilettante_Pro
 
Регистрация: 27.11.2015
Сообщений: 2,899

Coriolan161,
Сообщение от Coriolan161
1) Он не понимает кто такой input в
Цитата:
input.addEventListener('...')
Понимает...
<!DOCTYPE html>
<html>
  <head>
  </head>
  <body>
   <input type='text' id='input'><br>
	<div id="con"></div><br>
	<div id="result"></div>
	
 <script >
     var arr = [
    'Advance',
    'Belfair',
    'Belleview',
    'Boonville',
    'Conestoga',
    'Cotopaxi'

    ]
     for (var i = 0; i < arr.length; i++) {
         var div = document.createElement('div');

         con.innerText += (arr[i]);
         con.appendChild(div)
     }

     input.addEventListener('input', function () {
         for (var i = 0; i < arr.length; i++) {
             
             var res = input.value;

              console.log(input.value + ' == ' + res)
             if (arr[i].search(res) > -1) {
                 console.log(arr[i]);
                 result.innerText = arr[i]
             }
         }
         if (input.value.length == 0) {
             result.innerText = ''
         }
     });
</script>
  </body>
</html>

Последний раз редактировалось Dilettante_Pro, 16.11.2016 в 18:30.
Ответить с цитированием
  #5 (permalink)  
Старый 16.11.2016, 18:28
Аватар для Coriolan161
Профессор
Отправить личное сообщение для Coriolan161 Посмотреть профиль Найти все сообщения от Coriolan161
 
Регистрация: 21.11.2015
Сообщений: 440

Dilettante_Pro,
В смысле?) Как это?) Как он понимает что это тот инпут?
Ответить с цитированием
  #6 (permalink)  
Старый 16.11.2016, 18:32
Профессор
Отправить личное сообщение для Dilettante_Pro Посмотреть профиль Найти все сообщения от Dilettante_Pro
 
Регистрация: 27.11.2015
Сообщений: 2,899

Coriolan161,
У него id='input'

Цитата:
При отображении страницы браузер автоматически создаёт глобальные свойства со ссылками на элементы, для которых указан уникальный идентификатор. Именами свойств являются сами идентификаторы. Таким образом, в JavaScript есть возможность быстрого обращения к элементу по его id.
http://web-gain.ru/javascript/dom-reference

Последний раз редактировалось Dilettante_Pro, 16.11.2016 в 18:35.
Ответить с цитированием
  #7 (permalink)  
Старый 16.11.2016, 18:44
Аватар для Coriolan161
Профессор
Отправить личное сообщение для Coriolan161 Посмотреть профиль Найти все сообщения от Coriolan161
 
Регистрация: 21.11.2015
Сообщений: 440

Dilettante_Pro,
Это перевернуло всю мою жизнь)
Ответить с цитированием
  #8 (permalink)  
Старый 16.11.2016, 18:58
Профессор
Отправить личное сообщение для Dilettante_Pro Посмотреть профиль Найти все сообщения от Dilettante_Pro
 
Регистрация: 27.11.2015
Сообщений: 2,899

Coriolan161,
Надеюсь, не вверх ногами
Ответить с цитированием
  #9 (permalink)  
Старый 16.11.2016, 22:54
Профессор
Отправить личное сообщение для DivMan Посмотреть профиль Найти все сообщения от DivMan
 
Регистрация: 08.03.2016
Сообщений: 429

А теперь, почему, если стереть поле, то элемент не создаётся?

http://plnkr.co/edit/RnUjCqPT8aBMpUcDcmYu?p=preview
Ответить с цитированием
  #10 (permalink)  
Старый 17.11.2016, 17:03
Профессор
Отправить личное сообщение для Dilettante_Pro Посмотреть профиль Найти все сообщения от Dilettante_Pro
 
Регистрация: 27.11.2015
Сообщений: 2,899

DivMan,
Не нужно в цикле много раз удалять один-единственный con - скрипт прерывается по ошибке
Если и удалять в цикле - то с использованием try-catch
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
вывести слова определенной длины с помощью регулярных выражений alexandr2006 Элементы интерфейса 15 09.02.2016 22:07
Живой поиск JQUERY + AJAX + PHP + MYSQL dimi007 AJAX и COMET 2 22.07.2014 13:50
Поиск текста с помощью регулярных выражений Worker Javascript под браузер 7 10.03.2011 10:08
Создание фильтра базы ссылок с помощью регулярных выражений SvetozarPNZ Events/DOM/Window 8 28.10.2010 13:15
Изменить таг с помощью регулярных выражений alexKniaz Общие вопросы Javascript 1 28.10.2008 17:38