似乎无法让 CSS 在附加的表上工作


Cant seem to get CSS working on an appended table

我有一个对 php 文件的 ajax 请求,每个文件返回 3 行值。

我想将这些附加到表中。这行得通。我在表格中获取我的信息,但我似乎无法添加类或 id 并在其上获得一些样式。

http://jsfiddle.net/AKh4n/1/

success : function(data) {
    $('#lijstbeh').empty();
    var data2 = jQuery.parseJSON(data);
    $('#lijstbeh').append('<table class="table">');
    $('#lijstbeh').append('<tr>');
    $('#lijstbeh').append('<th>Behandeling ID</th>');
    $('#lijstbeh').append('<th>Behandeling kort</th>');
    $('#lijstbeh').append('<th>Behandeling datum</th>');
    $('#lijstbeh').append('</tr>');
    $.each (data2,function (bb) {
        $('#lijstbeh').append('<tr class="tblbehandelingen">');
        $('#lijstbeh').append('<td>' + data2[bb].BEH_ID + '</td>');
        $('#lijstbeh').append('<td>' + data2[bb].BEH_behandelingkort + '</td>');
        $('#lijstbeh').append('<td>' + data2[bb].BEH_datum + '</td>');
        $('#lijstbeh').append('</tr>');
    });
    $('#lijstbeh').append('</table>');
}

编辑

$(document).ready(function () {
    $('.tblbehpatienten').click(function () {
        var value1 = $(this).find('td:first').text();
        var value2 = $(this).find('td:first').next().text();
        $("#beh_voornaampat").text(value1);
        $("#beh_familienaampat").text(value2);
        $.ajax({
            type: 'POST',
            url: 'home/getbehandelingen',
            datatype: "JSON",
            data: {
                PA_firstname: value1,
                PA_lastname: value2
            },
            success: function (data) {
                $('#lijstbeh').empty();
                var data2 = jQuery.parseJSON(data);
                var table_string = '<table>' + '<tr><th>Behandeling ID</th>' +
                  '<th>Behandeling kort</th>' + '<th>Behandeling datum</th></tr>';
                $.each(data2, function (bb) {
                    table_string += '<tr class="tbl"><td>' + data2[bb].BEH_ID + '</td>' +
                      '<td>' + data2[bb].BEH_behandelingkort +'</td>' +
                      '<td>' + data2[bb].BEH_datum + '</td></tr>';
                });
                table_string += '</table>';
                $(table_string).appendTo('div#lijstbeh');
            };
        });
    });
});

它现在正在做我的头。似乎无法让它工作。我在某个地方搞砸了}吗?

再次编辑

};应该}我现在让它工作。谢谢!

您可能

希望将追加合并到一个append()语句中。否则,jQuery会关闭每个标签。附加后查看 DOM。您的结构如下所示:

<div id="1">
  <table></table>
  <tr></tr>
  <th>Behandeling ID</th>
  <th>Behandeling kort</th>
  <th>Behandeling datum</th>
  <tr class="tbl" <="" tbody=""></tr>
  <td>1</td>
  <td>2</td>
  <td>3</td>
</div>

如您所见,这不是一个有效的表。

此外,在您的click处理程序中,您引用的是 ID 为"tbl"的元素,但它应该是像 .tbl 这样的类引用。

我还更改了您的click处理程序,以使用 jQuery 的 on() 延迟。

 $('#1').append('<table>'+
                '<tr><th>Behandeling ID</th>'+
                '<th>Behandeling kort</th>'+
                '<th>Behandeling datum</th></tr>'+
                '<tr class="tbl"><td>' + "1" + '</td>'+
                '<td>' + "2" + '</td>'+
                '<td>' + "3" + '</td></tr>'+
                '</table>');
$(document).on('click','tr.tbl',function(){
    alert("dfmlgk");
});

http://jsfiddle.net/AKh4n/2/

编辑:

或者,您可以使用 appendTo() .

在此示例中,我首先将表构建为字符串。这对于动态生成的表可能更有用。将表构建为字符串也可以使用 append() 来完成;下面的示例演示了将表生成为字符串以及 appendTo() 方法。

var table_string='<table>'+
                '<tr><th>Behandeling ID</th>'+
                '<th>Behandeling kort</th>'+
                '<th>Behandeling datum</th></tr>';
for (var i=1;i<=5;i++) {
    table_string+='<tr class="tbl"><td>row '+i+' column 1</td>'+
                '<td>row '+i+' column 2</td>'+
                '<td>row '+i+' column 3</td></tr>';
}
table_string+="</table>";
$(table_string).appendTo('div#1');
$(document).on('click','tr.tbl',function(){
    alert("dfmlgk");
});

http://jsfiddle.net/AKh4n/4/