单击时从列表中获取值

时间:2013-10-02 17:21:06

标签: javascript jquery

我有一个搜索框,可以选择。例如:当我在搜索框中输入'p'时,我会得到一个列表 PERSONA personB personC

现在,当我点击personB时,我想将值捕获为“personB”。但是,在我的代码中,无论我点击什么,捕获的值总是“personA”。这是我在jsp页面上编写的代码。

    <script
    type="text/javascript"
    src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"
></script>
<script type="text/javascript">
    $(document).ready(function() {
        $("#keywords").keyup(function() {
            var kw = $("#keywords").val();
            if (kw.length != 0) {
                $.ajax({
                    type : "GET",
                    url : "getPerson.jsp",
                    contentType : "application/json;charset=utf-8",
                    dataType : "json",
                    data : {
                        "searchBoxText" : kw
                    },
                    success : function(response)
                    {
                        var htmlToShow = '<ul>';
                        $.each(response, function(personId, personName)
                                  {
                            htmlToShow += '<li>ID: ' + personId + "; Name: " + personName + '</li>';
                                  })
                                  htmlToShow += '</ul>'
                                  $("#results").html(htmlToShow);
                    }
                });
            } else {
                $("#results").html("");
            }
            return false;
        });
        $("#results").click(function() {

            alert($('li').html());  
    });
</script>
</head>
<body>
    <a href="Logout.jsp">Logout</a>
    <center>
        <div class="ajax_body">
            <div id="inputbox">
                <input
                    id="keywords"
                    type="text"
                    name="keywords"
                    value=""
                />
            </div>
        </div>
        <div id="results"></div>
        <div class="overlay"></div>

    </center>
</body>
</html>

2 个答案:

答案 0 :(得分:0)

试试这个:

$("#results").click(function(e) {
    alert($(e.target).html());  
});

答案 1 :(得分:0)

看起来你想做的事情是这样的:

$("#results").on("click", "li", function() {
    alert($(this).html());
});

这允许您将委派的处理程序绑定到父项,以允许您为动态添加的DOM元素提供单击处理程序。