Просмотр полной версии : Живой поиск, с помощью регулярных выражений
Сложный человек
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) Он не понимает кто такой input в
input.addEventListener('...')
2) Не создавай элементы в цикле!!!
3) На
Dilettante_Pro
16.11.2016, 18:19
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,
Надеюсь, не вверх ногами:)
А теперь, почему, если стереть поле, то элемент не создаётся?
http://plnkr.co/edit/RnUjCqPT8aBMpUcDcmYu?p=preview
Dilettante_Pro
17.11.2016, 17:03
DivMan,
Не нужно в цикле много раз удалять один-единственный con - скрипт прерывается по ошибке
Если и удалять в цикле - то с использованием try-catch
vBulletin® v3.6.7, Copyright ©2000-2025, Jelsoft Enterprises Ltd. Перевод: zCarot