什么's是“”的parentNode<tr>"
What's the parentNode of a "<tr>" ?
我试过这个:
<table id ="table1">
<tr id ="aa"><td>aa</td></tr>
<tr id ="bb"><td>bb</td></tr>
</table>
<input type="button" onclick = "test()" value = "button">
和javascript:
function test(){
var parent=document.getElementById("table1");
var child=document.getElementById("aa");
parent.removeChild(child); //this isn't work
//child.parentNode.removeChild(child); this is ok!
}
错误:
未捕获的NotFoundError:试图引用不存在的上下文
所以,我怀疑,table不是tr的父级吗?
在这种情况下,父元素是<tbody>
(开始和结束标记是可选的)。
参见HTML 5树构造规则:
8.2.5.4.9"表内"插入模式
…
一个起始标签,其标签名称为:"td"、"th"、"tr"之一
清除堆栈返回到表上下文。(见下文。)
为没有属性的"tbody"起始标记标记插入一个HTML元素,然后将插入模式切换到"在表体"。
重新处理当前令牌。
<table>
在DOM中有一个隐含的<tbody>
,无论您是否在HTML中放置一个:
console.log(child.parentNode.nodeName); // TBODY
console.log(child.parentNode.parentNode.nodeName); // TABLE
console.log(child.parentNode.parentNode == parent); // true
演示
尝试
var child = document.getElementById("aa");
child.parentNode.removeChild(child);
你应该添加一个空检查,比如
if(child != null && child.parentNode != null)
child.parentNode.removeChild(child);
else
alert("NULL reference");
TR的父节点是TBODY。如果未定义TBODY,则浏览器会自动创建TBODY。
相关文章:
- 在<页眉>标签
- 如何更改<svg>标记为<img>用js标记
- Ckeditor-plugin:插入虚假元素add不情愿<p>标签前后
- Ajax文件加载和<输入>文件加载
- 检测电话窃听,即:<a href="电话:xxx">在UIWebview上
- 链接所有<a>Meteor
- 在<输入类型=“;文件“/>
- Div根据<选择>菜单
- 可以<脚本类型=“;text/javascript”>window.location=“/"</
- 如何首先设置样式<td>表中包含在窗体中的元素
- 通过点击<李>在jQuery中
- 正在检测导航到<a name=“;最新主题”></a>
- 如何更改<选择>使用angularJS从控制器获得的值
- 通过具有IE<11
- 如何附加<ul><李>元素位于某个特定条件的父元素列表之间
- 图像可以从源<img src=""/>.TEXT可以在没有javascript的情况下从外部
- 应为标识符,而看到'<'
- 如何设置默认<ui视图>在另一<ui视图>
- 使用Javascript,如何显示<tr>在另一<tr>悬停时,隐藏第二个<tr>
- 什么's是“”的parentNode<tr>"