使用javascript,如何从自动完成列表中选择点击的项目?

用户名

我想用普通的Javascript而不是jQuery做到这一点。我有一个脚本,该脚本会基于keyup事件进行ajax调用并返回更改的项目列表。因此,在搜索框中输入3个字符(“ eth”)后,我们可能会有一个这样的列表:

ethereum
ethereum-classic
ethos
ethlend
etherparty
etheroll
ethereum-blue
ethorse
ethbits
etheriya
ethereumcash
ethbet
ethereum-gold
ethereum-dark
ethereum-movie-venture
ethgas
etherdelta-token
ethereum-lite

现在,我想通过单击从列表中选择一项。到目前为止的代码是:

function loadDoc() {
        var string = document.getElementById("searchbox").value;
        var xhttp = new XMLHttpRequest();
    xhttp.onreadystatechange = function() {
      if (this.readyState == 4 && this.status == 200) {
             document.getElementById("demo").style.display = "";
             document.getElementById("demo").innerHTML = "";
       obj = JSON.parse(this.responseText);
             for (i = 0; i < obj.length; i++) {
           document.getElementById("demo").innerHTML += "<div>" + obj[i].id + "</div>";
                        }
                        document.getElementById("demo").addEventListener("click", "div", function(){
                        var item = document.getElementById('demo').innerHTML;
                        //var item = this.getElementById("demo")[0].innerHTML;
               alert(item);
             });
      }
    };
    xhttp.open("POST", "/search?string=" + string, true);
    xhttp.send();

除行外一切正常

document.getElementById("demo").addEventListener("click", "div", function(){
                            var item = document.getElementById('demo').innerHTML;
                            //var item = this.getElementById("demo")[0].innerHTML;

我已经尝试了多种变体,获得的最好成绩是捕获整个列表的click事件,我希望被单击的项成为返回的唯一项。用Javascript实现此目的的正确方法是什么?

谢谢!

塞尔波山

您定义addEventListener错误,回调函数必须是第二个参数。然后,您可以使用event.target访问被单击的项目。这是一个示例代码:

<div id="demo">demo</div>

<script>
  //assume you get all items in this obj
  var obj = [{id:"ethereum"}, {id:"ethereum-classic"}, {id:"ethos"}, {id:"ethlend"}, {id:"etherparty"}] //...

  document.getElementById("demo").innerHTML = "";

  for (i = 0; i < obj.length; i++) {
      document.getElementById("demo").innerHTML += "<div>" + obj[i].id + "</div>";
  }
  
  document.getElementById("demo").addEventListener("click", function(e){
      var item = e.target; //event.target
      alert(item.innerText); //get text of selected item (eg "ethereum")
  }); 
</script>

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何使用 TypeScript 从量角器的自动完成下拉列表中选择项目?

从包含从自动完成的文本框中选择的项目的列表中删除项目

我如何从列表中选择的项目的两个自动完成文本视图中获取自动完成文本视图的ID?

键盘快捷键,用于从Excel自动完成列表中选择项目

在vim自动完成列表中选择一个项目而不插入换行符

如何使用 Selenium 在下拉列表中选择项目?

如何使用硒从列表中选择一个项目?

不在jQuery自动完成中选择返回的项目吗?

我如何从列表中选择项目

如何从列表中选择项目

如何从列表中选择硒项目?

使用通配符从列表中选择项目

如何使用箭头并输入以从自动完成选项中选择选项?

如何使用硒从自动完成文本框中选择文本

我如何在反应中使用材料 ui 库从我的自动完成框中选择

如何使用JavaScript或Jquery选择在GridView中选择的行项目的子项目?

如何使用python从列表中选择特定项目并保存在新列表中

如何从项目列表中选择滚动视图中的中心项目

如何使用从微调器中选择的项目

用户从列表中选择项目时如何隐藏列表?

如何使用python从硒的自动建议列表中选择一个值

如何使用Selenium和Java从动态下拉列表中选择自动建议

如何使用 Selenium 在下拉列表中选择自动建议地址

如何在选择项目时让自动完成框变大

如何使用Java从数据库调用的子菜单列表中选择项目

Winapp驱动程序:如何使用Java从列表中选择项目

我如何使用wp7在列表框中选择多个项目

从列表中选择项目

从列表中选择特定项目