jquery 1.6.2和IE8错误

时间:2011-05-31 17:41:24

标签: jquery internet-explorer-8

在jquery 1.6.2的未压缩版本中,IE8开发人员工具告诉我6096行引发了错误:需要对象。

6096读取:elem = div.childnodes;

这是一个扩展的一部分 -

jquery.extend({ 
    clone: function( elem, dataAndEvents, deepDataAndEvents) { 

我基本上是在MySQL数据库中插入或编辑记录,并以表格格式显示记录。我的脚本破坏的地方是我试图显示HTML代码的地方 - 我最初使用的是$(div).html(code),但是在这里阅读类似的问题切换到$(div).empty() $(div).append(code),但无论哪种方式我都得到了相同的错误。我的代码的相关部分如下。

 ...

 //building table body
        tableCode += "<tr row=\"row_" + i + "\">";

        tableCode += "<td class=\"fileTitle tableCell\" key=\"title\" " + backgroundColor + "><p class=\"fileTitleTD\">" + fileLink + "</p><p class=\"fileTitleDesc\">" +  dataObj[thisRowData]['fileDescription'] + "</td>";
        tableCode += "<td class=\"fileType tableCell\" key=\"fileType\" " + backgroundColor + ">" + thisFileImage + "&nbsp;" + dataObj[thisRowData]['fileTypeExt'] + "</td>";
        tableCode += "<td class=\"lastUpdate tableCell\" key=\"lastUpdate\" " + backgroundColor + ">" + dataObj[thisRowData]['fileModed'] + "</td>";

        if(thisView == "admin") { 
            tableCode += "<td class=\"edit tableCell\"" + backgroundColor + " key=\"edit\"><p class=\"adminBtns\"><a href=\"javascript:void(0);\" class=\"editRecord\" recordID=\"" + dataObj[thisRowData]['fileId'] + "\">Edit</a></p></td>";
            tableCode += "<td class=\"delete tableCell\"" + backgroundColor + " key=\"delete\"><p class=\"adminBtns\"><a href=\"javascript:void(0);\" class=\"deleteRecord\" recordID=\"" + dataObj[thisRowData]['fileId'] + "\">Delete</a></p></td>";
        }

        tableCode += "</tr>";

    }

    tableCode += "</tbody></table>";

//-->BREAKS HERE
    $("#dataResultsTableBody").empty();
    $("#dataResultsTableBody").append(tableCode);

    //check if dataContainer is being displayed, if not display it
    $("#adminLogInFormContainer").hide();
    $("#siteCategorySelect").show();
    $("#siteCategoryItemTable").show();

...

在当前版本的Firefox和Safari中正常工作,当我重新加载页面时会显示新记录或编辑版本。这也是jquery 1.4.2的一个问题,我今天刚刚更新,看看最新版本是否修复了这个问题。任何想法,如果这是我的问题或IE或jquery的问题?感谢。

1 个答案:

答案 0 :(得分:4)

您需要在动态生成的表中包含<tbody>个元素。你似乎错过了一个开头的标签。