你如何隐藏第一个表中的第一个元素?

时间:2014-07-22 19:56:39

标签: javascript jquery css

我知道隐藏表中的第一个元素就是do(':first-child')但是有一种方法可以指定只需要删除第一个TABLE的第一个元素?

在我的情况下,每个表的第一个元素都被隐藏了,我需要解决这个问题。

3 个答案:

答案 0 :(得分:0)

我想你只是针对第一个表,然后是第一个元素,不管是什么?

document.querySelector('table tr').style.display = 'none';

FIDDLE

,因为querySelector获取第一个匹配元素,或者在jQuery中

$('table:first tr:first').hide()

FIDDLE

答案 1 :(得分:0)

定位第一个table和第一个td

 $('table:first td:first').hide()

DEMO

答案 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";