Jquery 如何选择第三个tr';html表中的td是什么?

Jquery 如何选择第三个tr';html表中的td是什么?,jquery,html,css,Jquery,Html,Css,我有一张像下面这样的桌子 <table> <tr> <td> <table> <tr> <td>Name 1</td> <td>Red</td>

我有一张像下面这样的桌子

 <table>
        <tr>
            <td>
                <table>
                    <tr>
                        <td>Name 1</td>
                        <td>Red</td>
                    </tr>
                    <tr>
                        <td>Name 2</td>
                        <td>Blue</td>
                    </tr>
                    <tr>
                        <td>Name 3</td>
                        <td>Green</td>
                    </tr>
                    <tr>
                        <td>Name 4</td>
                        <td>Yellow</td>
                    </tr>
                </table>
            </td>
        </tr>
    </table>
但它返回名称1。 假设我没有给任何人身份证。我知道我错过了一些非常愚蠢的事情!请帮帮我。

jQuery 您希望根据元素在父元素的子元素中的编号来选择元素。使用CSS/jQuery API的
:nth-child()
,您会很幸运

$('table table tr:nth-child(3) td');
我想这是我想要的

还要注意,它是一个CSS元素选择器,jQuery使用所有CSS选择器来选择元素

更准确地说,您只能获得第一个td,您可以使用以下代码:

$('table table tr:nth-child(3) td:first-child');
(有关子级选择的详细信息)

(有关第一个孩子选择的详细信息)

CSS 如果您在CSS中使用相同的代码,您将获得相同的输出

为什么??因为您将在jQuery中使用的选择器在CSS中完全相同。您需要更改的只是如何实现元素的属性


祝你好运

您可以为内容选择:

或者您可以选择:

:


处理这一问题的最佳方法是为HTML中的各种元素提供某种标识符(例如,每行的唯一
id
值,每行的第一个
的公共
值,等等)。这种信息才是jQuery选择器真正强大的原因

但是,如果仅限于使用您当前的代码,我可能会使用的选择器(以确保我得到了我想要的元素)将是:

$('table').find('table').find("tr").eq(2).children(':first-child')

我更喜欢这种风格(与“单一选择器”方法相反)因为它往往更快,让你对选择的范围有更严格的控制。

你能提供更多的上下文信息吗,比如你需要选择它们做什么,你需要根据td中的sting还是根据它们的顺序进行选择?顺序或字符串都会起作用,以便给它们一个特定的值样式?css解决方案???
document.querySelector(“表格”).rows[2]。cells[0]。textContent
yes。或者根据标记
$('table table tr:nth of type(3)td')
注意,并非所有jQuery选择器都是有效的CSS选择器。另请注意,jQuery中对给定选择器的浏览器支持可能比CSW中更好。这会让您说您的方法更快,或者让您更严格地控制?输入和输出单个选择器的时间要短得多(因此更快)。此外,您可以使用jQuery特定的选择器(如
:eq()
)选择与您的方法一样多的内容,并对结果进行完全相同的控制。我想更多地了解是什么让你觉得这更好。@Joetje50-老实说,你需要测试每种特定的情况,以确定哪种方法最快,但是有很多JSPerf测试显示
.find()
比单个复杂的选择器更快(这里讨论得很好:)。至于更严格的控制,像
.children()
.sibbines()
next()
等方法可以大大减少选择的范围,特别是在更大、更复杂的DOM结构中。选择器在一定程度上允许这样做(例如,
eq()
),但并不总是这样。顺便说一句,我没有专门测试我的建议,因为我不知道他的完整HTML结构,所以根据我的经验和他的DOM结构,我选择了我认为最快的。如果它是我的代码,实际上也不会给我们我的解决方案。实际上,我会对HTML进行一些设计更改,以支持更高效的选择设计。
$('table table tr td:contains(Name 3)')
$('table table tr:nth-child(3) td')
$('table table tr:eq(2) td');
$('table').find('table').find("tr").eq(2).children(':first-child')