Некоторые параметры из <template>
не отображаются в <datalist>
.Используя приведенный ниже код, я попытался ввести «ray», но он показывает только «ray AA».Когда я попытался набрать «Ray B», он показывает «Ray BB».Есть ли что-то не так с кодом.пожалуйста, дайте мне знать, если есть какие-либо обходные пути для этой проблемы.спасибо.
var search = document.querySelector('#search');
var results = document.querySelector('#searchresults');
var templateContent =
document.querySelector('#resultstemplate').content;
search.addEventListener('keyup', function handler(event) {
while (results.children.length) results.removeChild(results.firstChild);
var inputVal = new RegExp(search.value.trim(), 'i');
var set = Array.prototype.reduce.call(templateContent.cloneNode(true).children, function searchFilter(frag, item, i) {
if (inputVal.test(item.textContent) && frag.children.length < 6) frag.appendChild(item);
return frag;
}, document.createDocumentFragment());
results.appendChild(set);
});
<template id="resultstemplate">
<option>Ray AA</option>
<option>Ray BB</option>
<option>Ray1</option>
<option>Ray2</option>
</template>
<input type="text" name="search" id="search" placeholder="type 'r'" list="searchresults" autocomplete="off" />
<datalist id="searchresults"></datalist>
<script type="text/javascript">
</script>
Когда пользователь вводит "ray", должны отображаться как "Ray AA", так и "Ray BB".