2012-08-08 70 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