Internet explorer and removeChild()
Internet explorer and removeChild()
我一直使用elem.removeChild()
从我的文档中删除元素,但保存对该元素的JavaScript引用,以便我可以在适当的时候将它们添加回来。在Firefox和Chrome中运行良好。
现在我注意到,在IE7上,这些元素在这个过程中被破坏,所有的子元素都被删除了。当我将它们添加回相同的父元素时,它们是相同类型的元素,并且保留了它们的类名等内容,但是它们没有子元素。
这是预期行为吗?我知道我可以改变我的应用来做一些不同的事情,但这需要花费几个小时的时间,我显然希望避免这种情况。我一直认为它是可以删除元素,无论是通过使用removeChild()
或通过设置父的innerHTML
为空字符串,只要我有一个引用的元素(即一个变量指向元素,而不仅仅是一个元素id),它是可以自由地添加和删除元素没有打乱元素。
这是一个bug与IE,我不知何故感到困惑和其他东西正在发生,或者这是已知的和预期的行为?
removeChild的规范并没有明确地说要删除的节点的子节点应该与该节点一起保留,尽管对我来说,它们应该是合乎逻辑的,显然这也是FF和Chrome开发人员决定的。我不知道规范说做什么,如果父的innerHTML被设置为一个空字符串,但在我看来,这种方式有点像说"擦去任何东西在那里",所以在这种情况下,我认为这是合理的浏览器扔掉一切在innerHTML,即使有在代码中引用的一些被删除的元素。
没有看到更多的实现,我不确定你会得到更多的盲目的答案;这里有一个:
你碰巧正在与表行工作吗?看看这个答案. 显然,<tr>
必须在IE中连接到<tbody>
,而不是直接连接到<table>
。
- Selenium WebDriver and JavaScript change
- PHP and Javascript functions
- Javascript Return and if/else
- SetTimeout and clearTimeout in Javascript
- lightbox in html 5 and javascript
- TimelineJS and AngularJS
- 如何在cocos2d html中使用removeChild
- timeago.js with datatable and PHP
- javascript button ajax and php
- Ajax and Json with Rails
- Combine onload, onresize and onclick
- php布尔值's小写AND大写和数字布尔值'可以接受
- setTimeout and V8
- Jquery post and onclick
- Moment js and IOS
- Rails 3.2 and Paloma gem
- Backbone, TypeScript, and super
- iframe and JavaScript on different pages
- Javascript genreate removeChild and appendChild on click
- Internet explorer and removeChild()