在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 + " " + 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的问题?感谢。
答案 0 :(得分:4)
您需要在动态生成的表中包含<tbody>
个元素。你似乎错过了一个开头的标签。