我有一个带JSON.stringify的tableDnD拖放:
jQuery(document).ready(function()函数){
jQuery(“#表”).tableDnD({
职业:“危险”,
onDrop:函数(表、行){
jQuery.ajax({
url:“ajax.php”,
类型:“post”,
数据:{
“行”:JSON.stringify(table.tBodies[0].rows)
},
数据类型:“html”,
成功:功能(响应){
如果(回复){
//警惕(“成功”);
}否则{
警惕(“错误”);
}
}
});
}
});
});
我收到以下错误消息:
未捕获类型错误:将循环结构转换为JSON
我只在Chrome上有问题
不应将DOM元素直接转换为JSON
虽然-就像你已经经历过的-它失败了,例如在Chrome中,结果也可能出乎意料
这是因为数据是循环的:
节点的属性childNode包含其所有子节点,属性parentNode指向父节点
JSON格式不支持引用,因此它需要跟随属性直到到达终点,但由于子项指向其父项,且父项有其子项列表,因此这是一个无休止的循环,这就是出现错误的原因:
未捕获类型错误:将循环结构转换为JSON
即使通过浏览器解决了这一问题,您也可能会遇到其他问题。
因为不仅存在childNodes,而且还存在childElements。这同样适用于parentNode/parentElement,然后还有nextSibling,previsibling,firstChild,lastChild。。。这可能也会发生,因此最终会出现一个可怕的大JSON文件,其中包含大量重复数据