每个追加jquery - 未捕获错误:NOT_FOUND_ERR:DOM异常8

时间:2012-03-08 09:30:59

标签: jquery exception

我有以下函数传递一个对象,我试图表示为一个表。

我试图循环一个内部对象以添加所需的表行,但是一旦我的循环完成说“未捕获错误:NOT_FOUND_ERR:DOM异常8”

我得到一个异常

有什么想法吗?

function addTableLegend(seriesObj) {
$('#divTableLegends').append(
    $('<table>').attr({
        'id': 'tbl' + seriesObj.seriesIndex,
        'class': 'ipTable'
    }).append(
        $('<thead>').append(
            $('<tr>').append(
                $('<td>').append(seriesObj.name)
            ).append(
                $('<td>').append('Standard Deviation')
            ).append(
                $('<td>').append('Expected Return')
            )
        )
    ).append(
        $('<tbody>').append(
            $.each(seriesObj.objData, function (i, val) {
                $('<tr>')
                // ***Uncaught Error: NOT_FOUND_ERR: DOM Exception 8***
            })               
        )
    )
);
}

1 个答案:

答案 0 :(得分:2)

$.each返回一个常规对象,而不是一个jQuery列表。 这就是无法使用.append()

添加的原因

虽然我认为你的意思是这样的:

function addTableLegend(seriesObj) {

    // Define the table
    var tbl = $('<table>').attr({
            'id': 'tbl' + seriesObj.seriesIndex,
            'class': 'ipTable'
        }).append(
            $('<thead>').append(
                $('<tr>').append(
                    $('<td>').append(seriesObj.name)
                ).append(
                    $('<td>').append('Standard Deviation')
                ).append(
                    $('<td>').append('Expected Return')
                )
            )
        ).append($('<tbody>'));

    // Append the table
    $('#divTableLegends').append(tbl);

    // Container alias
    var container = tbl.children('tbody').first();

    // Iterate the data
    $.each(seriesObj.objData, function (i, val) {

        // Add item to table
        container.append(
            $('<tr>').append(
                $('<td>').html(val),
                $('<td>').html('MyDeviation'),
                $('<td>').html('MyReturn')
            )
        );

    });
}​