2014-01-23 48 views
0

我有一个div id .i必须在表格中附加一个值给div。jquery添加一个表格到div

<div id="testResult" style="padding-left: 120px; "></div> 

在做下面的步骤,但它不工作。

$.ajax({ 
    url: '/getReports', 
    cache: false 
}).done(function (html) { 
    if (html != "") { 
     $('#testResult').show(); 
     var htm = ""; 

     var string1 = '<table border="1"><tr><td>No</td><td>Testcase</td> <td>OS</td> <td>Browser</td> <td>Result</td></tr></table>'; 
     $.each(html, function (i, data) { 

      string1 + = '<tr><td rowspan="3">1</td><td rowspan="3">' + data.status.test + '</td><td rowspan="3"><!--OS--></td><td>' + data.status.bwser + '</td> <td> ' + data.status.report + ' </td></tr>'; 
     }); 
     $('#testResult ').append(string1); 
     $("#testResult").html("<br/><br/>"); 
     $("#testResult").html("<p>" + htm + "</p>"); 
    } 

}).fail(function() { 
    $("#testResult").html("Failed to run the test"); 
    $('#edit ').removeAttr("disabled"); 
}); 
+0

对不起...但它不起作用 – Sush

+3

您正在追加string1,那么您将覆盖“

”并再次覆盖空htm。这是有道理的 –

+0

你用.html()覆盖内容 – timo

回答

5

$("#testResult").html("<br/><br/>")$("#testResult").html("<p>" + htm + "</p>")将覆盖 “的TestResult” DIV的内容。因此,更换此

$('#testResult ').append(string1); 
     $("#testResult").html("<br/><br/>"); 
     $("#testResult").html("<p>" + htm + "</p>"); 
} 

$('#testResult ').append(string1); 
     $("#testResult").append("<br/><br/>"); 
     $("#testResult").append("<p>" + htm + "</p>"); 
} 

.append():会在哪里为

的.html到DIV 的现有内容中添加或添加额外的字符串( ):将删除或覆盖DIV的现有内容与较新的内容。

这是.append().html()之间的主要区别。

+0

@Pushkar:看到我更新的答案,应该可以帮助你理解两者之间的主要区别。 –

2

编辑这部分

$("#testResult").append("<br/><br/>"); 
    Remove this part--> 
    $("#testResult").html("<p>" + htm + "</p>"); 

的htm是空字符串,因为你从不将任何字符串它

+0

加入break有一定意义,但追加空字符串变量不会。谢谢我会'相应地编辑 –