为什么要在 PHP 中生成 HTML:
- JavaScript应该定义行为,而不是内容。
- 在JavaScript中创建需要更多的标记(多行字符串不像PHP中那么容易)。
- 如果你的HTML是在几个地方生成的(PHP和JS),那就更难维护了。
- 你可以使用jQuery的DOM操作函数来创建你的HTML,但从长远来看,你是在给自己开枪。
- 在服务器上创建 HTML 比在浏览器上创建 HTML 更快(在计算意义上)。
- PHP的循环更容易 - 很容易生成表标记。
- 如果您在页面加载时输出标记,则如果用户禁用了 JavaScript,则可以保留某种可攻击性。
为什么要在jQuery中生成HTML:
所以,我赞成第一个选项,在PHP中生成HTML。
直观比较两种方法,创建一个简单的表。
选项 1,使用 PHP:
// PHP
$html = '<table>';    
foreach($data as $row) {
    $html .= '<tr>';
    $html .= '<td><a href="#" class="button">Click!</a></td>';
    $html .= '<td>'.$row['id'].'</td>';
    $html .= '<td>'.$row['name'].'</td>';
    $html .= '</tr>';
}
$html .= '</table>'; 
echo $html;
?>
// jQuery
$('#container').load('handler.php', function() {
    $('#container a.button').click(function() {
        // Do something
    });
});
 
选项 2,使用 jQuery:
// PHP
echo json_encode($data);
// jQuery
$.ajax({
    url: 'handler.php',
    dataType: 'json',
    success: function(data) {
        var table = $('<table />');
        var len = data.length;
        for(var i = 0; i < len; i++) {
            var row = $('<tr />');
            var a = $('<a />').attr('href', '#').addClass('button');
            row.append($('<td />').append(a));
            row.append($('<td />').html(data[i].id);
            row.append($('<td />').html(data[i].name);
            table.append(row);
        }
        table.find('.button').click(function() {
            // Do something
        });
        $('#container').html(table);
    }
});
从设计/易于编码/美观的角度来看,我肯定会说使用PHP方法。