我知道隐藏表中的第一个元素就是do(':first-child')但是有一种方法可以指定只需要删除第一个TABLE的第一个元素?
在我的情况下,每个表的第一个元素都被隐藏了,我需要解决这个问题。
答案 0 :(得分:0)
我想你只是针对第一个表,然后是第一个元素,不管是什么?
document.querySelector('table tr').style.display = 'none';
,因为querySelector获取第一个匹配元素,或者在jQuery中
$('table:first tr:first').hide()
答案 1 :(得分:0)
答案 2 :(得分:-1)
您可以使用document.getElementsByTagName("table")
获取所有表的集合。该集合的元素零([0])是第一个表。然后,您可以将您的第一个孩子的解决方案应用于元素零。
这不需要jQuery,也不需要为特定的表分配ID属性。 (如果您事先知道哪个表将是第一个,则分配ID属性可能更有效。)
编辑添加:我已经测试了这个并且它可以工作,虽然它是从我的第一个“it works”帖子修改过来的。 TABLE的第一个子元素是以tr
元素开头的表的TBODY,因此真正需要的是TBODY的第一个子节点。对于nodeName为“TR”的exresressly下降firstElementChild树可能更好,并隐藏它。在这篇文章中进一步了解这种方法。
以下是有效的简单代码:
document.getElementsByTagName("table")[0].firstElementChild.firstElementChild.style.display = "none";
这是纯JavaScript,不需要jQuery。请注意,document.getElementsByTagName返回一个实时集合,因此即使将一个表添加到DOM,也会获得第一个。
请记住,<table>
(然后是TBODY)的第一个子元素不一定是<tr>
。如果你可以确定它是,或者如果你想要第一个元素,那么我给你的东西将起作用。如果你想确定它是<tr>
,那么还需要做更多的工作。
此代码查找并隐藏第一个<tr>
但效率较低,因为它获得了两个HTML集合:
document.getElementsByTagName("table")[0].getElementsByTagName("tr")[0].style.display = "none";