我正在嘗試使自動建議搜索。它的工作很好,我想改善的只是大小寫值。下面我有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'由於具有大寫值而不可搜索。 –