2012-08-08 25 views
0

下面的代码将服务器中returndatafromdb2()函数返回的html添加到具有编号为resultstable2的表中。该函数返回returndatafromdb2()在HTML的形式为:使用jQuery .load将行添加到html表中

"<tr><td>some text</td><td>more text</td></tr><tr><td>some text</td><td>more text</td></tr><tr><td>some text</td><td>more text</td></tr>" 

正如你在我使用​​从jQuery来从服务器获取的html并将其添加到表中的代码中看到。但是,我正在使用的代码会替换表中的现有行而不是添加到该表中。我如何使用jQuery​​函数将行添加到现有行而不是替换它们?

如果我可以以某种方式将从​​函数接收到的html分配给一个变量,如newhtml,那么我可以执行类似$(newhtmltext).appendTo('#resultstable2')的操作。但我不知道如何将​​获得的html分配给一个变量,或者将它用作字符串。

验证码:

使用jQuery

<p>Method 2</p> 

    <table id="resultstable2"> 
     <tr> 
      <th>Grade</th> 
      <th>Price</th> 
     </tr> 
    </table> 

<button id="b2">Execute returndatafromdb2()</button> 

<script type="text/javascript"> 

    $.ajaxSetup({ 
     cache: false 
    }); 


    var getdata2 = function(){ 
     var loadurl2 = "{{=URL('default', 'returndatafromdb2')}}"; 
     $('#resultstable2').load(loadurl2)); 
    }; 

    $('#b2').click(getdata2); 

</script> 

回答

3

没有办法与load()功能做创建表。您将需要使用正常的ajax调用并编写自己的回调函数。事情是这样的:

var getdata2 = function() { 

    var loadurl2 = "{{=URL('default', 'returndatafromdb2')}}"; 
    $.get(loadurl2,function(data){ 
     $('#resultstable2').append(data); 
    },'html'); 

}; 

$('#b2').click(getdata2); 
+0

感谢。我知道如何用$ .get和$ .post做到这一点。想知道是否可以加载。 – Curious2learn 2012-08-08 16:01:18

0
jQuery.get(loadurl2 ,'', function(d){ 

$('#resultstable2').append(d); 

}) 
1

只需使用append代替load()

var getdata2 = function() { 
    var loadurl2 = "{{=URL('default', 'returndatafromdb2')}}"; 
    $.get(loadurl2,function(data){ 
     //Here goes the append :-) 
     $('#resultstable2').append(data); 
    },'html'); 
}; 

$('#b2').click(getdata2); 
+0

你忘了'#'。 – 2015-11-22 17:41:47

相关问题