Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Живой поиск, с помощью регулярных выражений (https://javascript.ru/forum/misc/65939-zhivojj-poisk-s-pomoshhyu-regulyarnykh-vyrazhenijj.html)

Сложный человек 16.11.2016 17:08

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

http://plnkr.co/edit/bOMB2VuVEY64WgXZsjj3?p=preview

Dilettante_Pro 16.11.2016 17:57

Сложный человек,
Цитата:

При успехе метод search() возвращает индекс первого сопоставления с регулярным выражением внутри строки. В противном случае метод вернёт -1.
Так что не надо сравнивать его с input.value

Coriolan161 16.11.2016 18:02

Вложений: 1
Сложный человек,
1) Он не понимает кто такой input в
Цитата:

input.addEventListener('...')
2) Не создавай элементы в цикле!!!
3) На

Dilettante_Pro 16.11.2016 18:19

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>

Coriolan161 16.11.2016 18:28

Dilettante_Pro,
В смысле?) Как это?) Как он понимает что это тот инпут?

Dilettante_Pro 16.11.2016 18:32

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

Цитата:

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

Coriolan161 16.11.2016 18:44

Dilettante_Pro,
Это перевернуло всю мою жизнь)

Dilettante_Pro 16.11.2016 18:58

Coriolan161,
Надеюсь, не вверх ногами:)

DivMan 16.11.2016 22:54

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

http://plnkr.co/edit/RnUjCqPT8aBMpUcDcmYu?p=preview

Dilettante_Pro 17.11.2016 17:03

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


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