在javascript中删除TR表的第一个TD
Remove first TD of a TR Table in javascript
我试图在运行时仅使用Javascript删除td(不打算使用JQuery)。这是我的桌子:
<table id = "tab">
<tr>
<td>
test 1
</td>
<td>
test 2
</td>
<td>
test 3
</td>
</tr>
</table>
以下是我尝试过的:
function removeFirstTD() {
var element = document.getElementById("tab");
element.removeChild(element.firstChild);
}
注意,这个功能是有效的,我通过这样做来执行它:
<body onload = "removeFirstTD();">
<!-- the tab is here -->
</body>
问题是,它似乎删除了<tr>
,因为我在请求删除td之前没有确定tr的范围。有人能帮我做这件事吗?
也许最简单的方法是使用HTMLTableElement接口:
function removeFirstTD() {
var element = document.getElementById("tab");
element.rows[0].deleteCell(0);
}
jsFiddle的现场演示。
Use也可以使用querySelector。它选择与它匹配的第一个元素,如下所示;
function removeFirstTD() {
var element = document.querySelector("#tab tr td");
element.remove();
}
再下一级?
element.firstChild.removeChild(element.firstChild);
由于空白(在table
和tr
之间,以及tr
和td
之间),这将创建TEXTNODE,它将是第一个子级,您必须更具体:
function removeFirstTD() {
var element = document.getElementById('tab');
var firstRow = element.getElementsByTagName('TR')[0];
var firstColumn = firstRow.getElementsByTagName('TD')[0];
firstColumn.remove();
}
但你可能会发现这更简单、更可靠:
function removeFirstTD() {
document.querySelector('#tab tr td').remove();
}
你很接近。td
元素属于tr
元素(并且从技术上讲,tr
元素应该属于tbody
元素,而不是直接属于table
)。您需要获得tr
元素,然后找到它们的第一个子元素。
function removeFirstTD() {
var element = document.getElementById("tab");
var tr = element.getElementsByTagName('tr');
var j = tr.length;
while (j--){
tr[j].removeChild(tr[j].firstChild);
}
}
请注意,firstChild
可能是空白或不是第一个td
元素的其他实体,在删除该子元素之前应该添加一个检查。
<table class="u-full-width">
<thead>
<tr>
<strong><td>Joke</td></strong>
</tr>
</thead>
<tbody>
<tr>
<td>This is a joke</td>
</tr>
</tbody>
</table>
我添加这个是为了给像我这样的初学者提供一个循序渐进的过程来寻找这个答案。让我们说上面是我们的表看起来如何
首先,获取对表体
let tbody = document.querySelector('u-full-width').getElementsByTagName('tbody')
的DOM引用上面的语句返回一个HTML集合。因此,我们取集合
tbody = tbody[0]
的零索引tbody.removeChild(tbody.firstElementChild)
firstElementChild
忽略文本和注释节点
相关文章:
- 使用jQuery从TR父级中选择第一个TD子级
- 获取此行的第一个 TD
- 如何在数组的所有
中选择所有第一个 TD - 如何使用 JQuery 获取表的第一个 td 的值
- 在表中第一个tr的倒数第二个td中选择按钮-使用jQuery选择器
- 如何使用JQuery基于存储在第一个TD中的表的值来隐藏存储在第二个TD的图像
- 在javascript中删除TR表的第一个TD
- JQuery:第一个tr的td小于X
- 每个tr的第一个td值
- 如何使用Jquery选择第一个td元素及其文本
- 单击“将类添加到第一个”<td>在行中并且对应<th>表中
- html嵌套表通过单击表行第一个td来隐藏或显示表行
- 函数仅适用于第一个td's、 但不是针对所有的td's
- Jquery排除单击时的第一个td事件
- 如何选择第一个td
- 如何用纯JS瞄准每一行的第一个td
- 表映射的第一行和第一个td从json对象填充
- 为什么我可以't在jquery中的一个选择器中获取所有第一个td
- 为什么它总是在AngularJS中选择第一个TD单元格
- 如何为Onclick访问已单击TR的第一个TD