let api = []; api.push({ alias: 'api', order: '1', desc: '', link: '', list: [] }) api[0].list.push({ order: '1', desc: '添加用户信息', }); document.onkeydown = keyDownSearch; function keyDownSearch(e) { const theEvent = e; const code = theEvent.keyCode || theEvent.which || theEvent.charCode; if (code === 13) { const search = document.getElementById('search'); const searchValue = search.value; let searchArr = []; for (let i = 0; i < api.length; i++) { let apiData = api[i]; const desc = apiData.desc; if (desc.toLocaleLowerCase().indexOf(searchValue) > -1) { searchArr.push({ order: apiData.order, desc: apiData.desc, link: apiData.link, alias: apiData.alias, list: apiData.list }); } else { let methodList = apiData.list || []; let methodListTemp = []; for (let j = 0; j < methodList.length; j++) { const methodData = methodList[j]; const methodDesc = methodData.desc; if (methodDesc.toLocaleLowerCase().indexOf(searchValue) > -1) { methodListTemp.push(methodData); break; } } if (methodListTemp.length > 0) { const data = { order: apiData.order, desc: apiData.desc, alias: apiData.alias, link: apiData.link, list: methodListTemp }; searchArr.push(data); } } } let html; if (searchValue === '') { const liClass = ""; const display = "display: none"; html = buildAccordion(api,liClass,display); document.getElementById('accordion').innerHTML = html; } else { const liClass = "open"; const display = "display: block"; html = buildAccordion(searchArr,liClass,display); document.getElementById('accordion').innerHTML = html; } const Accordion = function (el, multiple) { this.el = el || {}; this.multiple = multiple || false; const links = this.el.find('.dd'); links.on('click', {el: this.el, multiple: this.multiple}, this.dropdown); }; Accordion.prototype.dropdown = function (e) { const $el = e.data.el; let $this = $(this), $next = $this.next(); $next.slideToggle(); $this.parent().toggleClass('open'); if (!e.data.multiple) { $el.find('.submenu').not($next).slideUp("20").parent().removeClass('open'); } }; new Accordion($('#accordion'), false); } } function buildAccordion(apiData, liClass, display) { let html = ""; if (apiData.length > 0) { for (let j = 0; j < apiData.length; j++) { html += '
  • '; html += '' + apiData[j].order + '. ' + apiData[j].desc + ''; html += ''; html += '
  • '; } } return html; }