Jquery多人在一个页面上搜索为什么不会填充结果?

时间:2012-07-04 03:27:30

标签: jquery

我有这个页面,上面有三个peson搜索。基本上它是一个文本框和按钮。当您单击按钮时,它将获取相关文本框中的文本,并应使用列表数据填充关联的结果。

    <div class="personcontainer">
        <div class="peoplesearchdiv" >

        <input type="text" class="searchpersontxtbox" />
        <input type="button" value="Find" class="findpersonbtn" />
        <div class="peopleresultsdiv"></div>
    </div>
    <input type="hidden" class="personguid" />

<div class="personcontainer">
        <div class="peoplesearchdiv" >

        <input type="text" class="searchpersontxtbox" />
        <input type="button" value="Find" class="findpersonbtn" />
        <div class="peopleresultsdiv"></div>
    </div>
    <input type="hidden" class="personguid" />

<div class="personcontainer">
        <div class="peoplesearchdiv" >

        <input type="text" class="searchpersontxtbox" />
        <input type="button" value="Find" class="findpersonbtn" />
        <div class="peopleresultsdiv"></div>
    </div>
    <input type="hidden" class="personguid" />

好的,所以试图让这个工作的jquery是:

$(document).ready(function () {

    $('.findpersonbtn').click(function () {

    var query = $(this).closest('.personcontainer').find('.searchpersontxtbox').val();

    $.get('/People/GetPeople/', { 'query': query }, function (data) {         

        $(this).closest('.peoplesearchdiv').find('.peopleresultsdiv').html(data);

    });

});

从GetPeople返回的是基本列表数据,例如。

<ul>
  <li>Cat</li>
  <li>Dog</li>
</ul>

所以我想要发生的是列表数据,以便在同一个人群中将html填充到人们的结果中。

虽然不起作用。

为了消除它作为GetPeople方法,我将jquery更改为:

$(document).ready(function () {

        $('.findpersonbtn').click(function () {

        var query = $(this).closest('.personcontainer').find('.searchpersontxtbox').val();

        $.get('/People/GetPeople/', { 'query': query }, function (data) {         

            $(this).closest('.peoplesearchdiv').find('.peopleresultsdiv').html("<ul><li>Cat</li><li>Dog</li></ul>");

        });

    });

仍然无效。

所以我试过了:

$(document).ready(function () {
    $('.findpersonbtn').click(function () {

        var query = $(this).closest('.personcontainer').find('.searchpersontxtbox').val();

        $(this).closest('.peoplesearchdiv').find('.peopleresultsdiv').html("<ul><li>Cat</li><li>Dog</li></ul>");

        $.get('/People/GetPeople/', { 'query': query }, function (data) {


        });

    });

Hmmmmmm。现在列表正在出现。显然不是我想要的,因为我没有从这个方法中填充。

所以看起来最接近的发现在get中不起作用?

任何人都知道为什么要修理?

1 个答案:

答案 0 :(得分:2)

在$ .get里面有$(this)不会返回peopleresultsdiv。

所以,你可以在$ .get之外得到所需的div并将它放在一个变量中,然后在$ .get中使用它。