私はjavascriptを使用して自動候補検索をしようとしています。すべてのことがうまくいきました。今、私は検索されたテキストをリスト内で太字にしたいと思っていました。javascriptのみを使用して大胆に検索されたコンテンツを表示する方法は?
ユーザーが何かを検索したときに、検索結果のみが結果リストに太字になってしまう可能性があります。たとえば、もし私がone
を検索すると、リスト内の1つが太字になります。
var inputId \t = 'filter-search';
var itemsData \t = 'filter-value';
var displaySet = false;
var displayArr = [];
function getDisplayType(element) {
\t var elementStyle = element.currentStyle || window.getComputedStyle(element, "");
\t return elementStyle.display;
}
document.getElementById(inputId).onkeyup = function() {
\t var searchVal = this.value.toLowerCase();
\t var filterItems = document.querySelectorAll('[' + itemsData + ']');
\t for(var i = 0; i < filterItems.length; i++) {
\t \t if (!displaySet) {
\t \t \t displayArr.push(getDisplayType(filterItems[i]));
\t \t }
\t \t filterItems[i].style.display = 'none';
\t \t if(filterItems[i].getAttribute('filter-value').toUpperCase().indexOf(searchVal.toUpperCase()) >= 0) {
\t \t \t filterItems[i].style.display = displayArr[i]; \t \t
\t \t }
\t }
\t displaySet = true;
}
<input type="text" id="filter-search" />
<ul>
\t <li filter-value="One Is">One Is (Uppercase)</li>
<li filter-value="one is">one is (Lowercase)</li>
\t <li filter-value="two">Two</li>
\t <li filter-value="three">Three</li>
\t <li filter-value="four">Four</li>
\t <li filter-value="five" >Five</li>
\t <li filter-value="six">Six</li>
\t <li filter-value="seven">Seven</li>
\t <li filter-value="eight">Eight</li>
\t <li filter-value="nine">Nine</li>
\t <li filter-value="ten" >Ten</li>
</ul>
定義したのvar CURRVAL = this.value; –
働いていただきありがとうございます。 –
@ Mr.Developer助けて嬉しいです。私の答えを受け入れることで感謝します。 –