javascript - 如何将 url 插入 Javascript var 索引中的文本?

标签 javascript html

下面是脚本,目前它的作用是在您使用 var 搜索索引输入时创建一个下拉框,我想要完成的是能够单击该下拉列表中的 google 一词并转到google.com,我知道这可以使用 html 来完成 谷歌

如何在 JS 中实现这一点?

<script> var searchIndex = ["google","apple","iPhone","ipad"];

var input = document.getElementById("searchBox"),
ul = document.getElementById("searchResults"),
inputTerms, termsArray, prefix, terms, results, sortedResults;


var search = function() {
inputTerms = input.value.toLowerCase();
results = [];
termsArray = inputTerms.split(' ');
prefix = termsArray.length === 1 ? '' : termsArray.slice(0, -1).join(' ') + ' ';
terms = termsArray[termsArray.length -1].toLowerCase();

 for (var i = 0; i < searchIndex.length; i++) {
 var a = searchIndex[i].toLowerCase(),
    t = a.indexOf(terms);

 if (t > -1) {
  results.push(a);
 }
 }

evaluateResults();
};

  var evaluateResults = function() {
  if (results.length > 0 && inputTerms.length > 0 && terms.length !== 0) {
    sortedResults = results.sort(sortResults);
  appendResults();
  } 
  else if (inputTerms.length > 0 && terms.length !== 0) {
   ul.innerHTML = '<li> <strong>' 
   + inputTerms 
   + '</strong> is not a valid part number  <br><small><a ></li>';

   }
   else if (inputTerms.length !== 0 && terms.length === 0) {
   return;
   }
   else {
   clearResults();
  }
  };

 var sortResults = function (a,b) {
 if (a.indexOf(terms) < b.indexOf(terms)) return -1;
 if (a.indexOf(terms) > b.indexOf(terms)) return 1;
 return 0;
 }
    var appendResults = function () {
  clearResults();

  for (var i=0; i < sortedResults.length && i < 5; i++) {
   var li = document.createElement("li"),
    result = prefix 
      + sortedResults[i].toLowerCase().replace(terms, '<strong>' 
      + terms 
      +'</strong>');

        li.innerHTML = result;
   ul.appendChild(li);
  }

   if ( ul.className !== "term-list") {
    ul.className = "term-list";
   }
    };

     var clearResults = function() {
    ul.className = "term-list hidden";
    ul.innerHTML = '';   
   };

      input.addEventListener("keyup", search, false);

     </script>

最佳答案

你可以这样做:

var terms = document.getElementsByClassName('term-list');
for (var i = 0; i<terms.length;i++) {
terms[i].addEventListener('click',gothere);
}
function gothere () {
 console.log(this.textContent);  
    var b = 'http://www.'+this.textContent+'.com';
    console.log(b);  // replace this with the next line:
  //  window.location.href = b;
}

DEMO

关于javascript - 如何将 url 插入 Javascript var 索引中的文本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27622515/

相关文章:

javascript - 为什么在 JavaScript 中使用 "with"关键字?

html - 使用带文本的CSS在悬停时增加宽度的div

html - 表格中的 Django 模板表单增加行高

javascript - 使用 Javascript 创建括号内的销售佣金计算器

jquery - Shim 命令在 RequireJS 中工作

javascript - Nodejs 中的每个模块都需要一个通用的 mongodb 连接

javascript - JavaScript 中的异步调用

css - chrome - 可编辑的 div - 单词中间的换行符?

javascript - 如何拖放数组

html - 如何使用:before to add <use> for <svg> tags?