Я пытаюсь сделать автоматический поиск. Его работа прекрасная вещь, которую я хочу улучшить, - это верхний и нижний регистр. У меня есть ниже li
списокКак преобразовать данные атрибутов в нижний регистр, используя только JavaScript?
<input type="text" id="filter-search" />
<ul>
<li filter-value="One Is">One Is (Uppercase)</li>
<li filter-value="one is">one is (Lowercase)</li>
<li filter-value="two">Two</li>
<li filter-value="three">Three</li>
<li filter-value="four">Four</li>
<li filter-value="five" >Five</li>
<li filter-value="six">Six</li>
<li filter-value="seven">Seven</li>
<li filter-value="eight">Eight</li>
<li filter-value="nine">Nine</li>
<li filter-value="ten" >Ten</li>
</ul>
var inputId = 'filter-search';
var itemsData = 'filter-value';
var displaySet = false;
var displayArr = [];
function getDisplayType(element) {
var elementStyle = element.currentStyle || window.getComputedStyle(element, "");
return elementStyle.display;
}
document.getElementById(inputId).onkeyup = function() {
var searchVal = this.value.toLowerCase();
var filterItems = document.querySelectorAll('[' + itemsData + ']');
for(var i = 0; i < filterItems.length; i++) {
if (!displaySet) {
displayArr.push(getDisplayType(filterItems[i]));
}
filterItems[i].style.display = 'none';
if(filterItems[i].getAttribute('filter-value').toLowerCase().indexOf(searchVal.toLowerCase()) >= 0) {
filterItems[i].style.display = displayArr[i];
}
}
displaySet = true;
}
Первый li
не найден, потому что он имеет верхнее значение случай, здесь code (его мало линия) Может кто-нибудь любезно наставит меня, что, как я могу исправить проблема. Я хотел бы оценить.
@ brso05 Конечно, если вы проверите предоставленную скрипку, вы увидите, что все данные доступны для поиска по полю ввода, но только сначала 'li' не доступен для поиска, потому что он имеет значение в верхнем регистре. –