1

从 获得第一行结果后JSON array,我需要使用jquery每种方法打印所有结果。

这是我的语法

 $(document).ready(function () {

    $("#btnsearch").click(function() {
    valobj = $('#search_box').val();
    $.getJSON("search.php", { q : valobj }, function(data,result){
        //show result from database
        $.each(data.content, function() {
            $('.toprightsec').append("Title" + data.content[0].title)
                        .append("Intro" + data.content[0].intro_text);
        });

        //end show result
    }, JSON);
});

data.content[0]仅显示循环的第一行。但是它自己的数据没有改变。如何解决data.content[0].title,所以该行像在数据库中一样打印?

更新

在对我的功能进行了一些调整之后,我添加了新功能来使用列表显示结果。

这是语法

$(document).ready(function () {
    //function to get the result from user-input
    $("#btnsearch").click(function() {
        valobj = $('#search_box').val();
        $.getJSON("search.php", { q : valobj }, function(data,result){
            //show result from database
            $.each(data.content, function(index, value) {
                $("#divContent").show();
                var li = $("<li><a></a><br /><p></p></li>");
                $("#posting").append(li);
                    $("a",li).text(value.title);
                    $("p",li).text(value.intro_text);           
            });

            //end show result
        }, JSON);
    });

问题是,如果我们想基于另一个关键字显示,我如何重置结果,所以如果用户键入新关键字,列表是否清晰?无需刷新浏览器。

谢谢你。

更新 2

  $(document).ready(function () {
    //function to get the result from user-input
    $("#btnsearch").click(function() {
        //clear the div
        $("#divContent").html("");

        valobj = $('#search_box').val();
        $.getJSON("search.php", { q : valobj }, function(data,result){
            //show result from database
            $.each(data.content, function(index, value) {
                $("#divContent").show();
                var li = $("<li><a></a><br /><p></p></li>");
                $("#posting").append(li);
                    $("a",li).text(value.title);
                    $("p",li).text(value.intro_text);           
            });  
            //end show result
        }, JSON);
    });
4

2 回答 2

0

在 each 中,您可以在当前迭代中捕获元素:

$.each(data.content, function(i, val) {
    $('.toprightsec')
        .append("Title" + val.title)
        .append("Intro" + val.intro_text);
});
于 2013-06-17T11:15:51.947 回答
0

在 $.each 函数中有两个参数。第一个是索引,第二个是值。

像这样:

$.each(data.content, function(index,value) {
   alert(value);
}

您可以将它们用作变量,在您的情况下,每个循环将像这样执行:

$.each(data.content, function(index, value) {
    $('.toprightsec')
        .append("Title" + value.title)
        .append("Intro" + value.intro_text);
});
于 2013-06-17T11:19:30.320 回答