Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/77.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript appendChild未正确设置parentElement_Javascript_Html - Fatal编程技术网

Javascript appendChild未正确设置parentElement

Javascript appendChild未正确设置parentElement,javascript,html,Javascript,Html,我可能误解了这个函数的正确用法,但我相信appendChild在Firefox中工作不正确。我有一个非常大的脚本,从版本6开始在IE中运行良好。我们现在正试图使这个脚本在所有浏览器中都能工作,所以我开始在FF中进行测试 以下是脚本中的一些相关行,为便于阅读,在此处进行了修改: var tempDocFragment = document.createDocumentFragment(); var tempNewtbody = document.createElement("tbody"); t

我可能误解了这个函数的正确用法,但我相信appendChild在Firefox中工作不正确。我有一个非常大的脚本,从版本6开始在IE中运行良好。我们现在正试图使这个脚本在所有浏览器中都能工作,所以我开始在FF中进行测试

以下是脚本中的一些相关行,为便于阅读,在此处进行了修改:

var tempDocFragment = document.createDocumentFragment();
var tempNewtbody = document.createElement("tbody"); 
trElem = document.createElement("tr");
tdElem = document.createElement("td");

trElem.appendChild(tdElem);
tempDocFragment.appendChild(trElem);
tempNewtbody.appendChild(tempDocFragment);
mytable.appendChild(tempNewtbody);
类似于上面的代码在向表中添加0到1000+个表行的循环中运行。这一切看起来都很正常,表行显示在表中。但是,表行有一个onmouseover事件,该事件运行以下代码行:

alert(this.parentElement);
这在Firefox中返回“undefined”,但在IE上返回正确的parentElement。因此,Firefox似乎正在运行代码以正确附加子元素,但不知何故未能将任何父元素与这些子元素关联。我希望能了解我可能做错了什么


谢谢。

标准方法是使用
parentNode
,它将在所有浏览器上工作标准方法是使用
parentNode
,它将在所有浏览器上工作


改为使用父节点。

parentElement


改用
parentNode

将TR添加到片段中,然后将片段添加到tbody-应该是另一种方式为什么要将TR添加到文档片段中?也许这就是Firefox认为的父母?我不能复制这种行为;看见您能否创建一个JSFIDLE来演示它,并发布一个链接?这最初是由一位很久以前离开公司的人设计的;我只是为了跨浏览器兼容性而更新部分。我不能确切地告诉你他们为什么选择做任何特定的事情,但我只是更新了使之工作所需的东西;我们将保存一次重写供以后使用。:)您将TR添加到片段中,然后将片段添加到tbody-应该是另一种方式为什么要将TR添加到文档片段中?也许这就是Firefox认为的父母?我不能复制这种行为;看见您能否创建一个JSFIDLE来演示它,并发布一个链接?这最初是由一位很久以前离开公司的人设计的;我只是为了跨浏览器兼容性而更新部分。我不能确切地告诉你他们为什么选择做任何特定的事情,但我只是更新了使之工作所需的东西;我们将保存一次重写供以后使用。:)不<代码>文档片段
也适用于所有浏览器。(请参阅)@ruakh:问题在于Firefox缺乏对
parentElement
的支持,而不是
DocumentFragment
<代码>文档片段也适用于所有浏览器。(请参阅)@ruakh:问题在于Firefox缺乏对
parentElement
的支持,而不是
DocumentFragment
。谢谢;我确信事情是这样简单的非常感谢。我确信事情是这样简单的