1

我有一个搜索框,它为我提供了可供选择的选项。例如:当我在搜索框中输入“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>
4

2 回答 2

0

试试这个:

$("#results").click(function(e) {
    alert($(e.target).html());  
});
于 2013-10-02T17:25:28.493 回答
0

看起来你想要做的是这样的:

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

这允许您将委托处理程序绑定到父项,这将允许您为动态添加的 DOM 元素拥有点击处理程序。

于 2013-10-02T17:27:22.200 回答