JQuery:选择未知的子元素

JQuery:选择未知的子元素,jquery,selector,Jquery,Selector,我有一个字典列表,我想访问第二个子元素,而不知道它是什么元素。例如: <dl> <dd> <div></div> <div></div> (select this item - however can be any html element) </dd> <dd> <div

我有一个字典列表,我想访问第二个子元素,而不知道它是什么元素。例如:

    <dl>
        <dd>
            <div></div>
            <div></div> (select this item - however can be any html element)
       </dd>
       <dd>
            <div></div>
            <div></div> (select this item - however can be any html element)
       </dd>
       <dd>
            <div></div>
            <div></div> (select this item - however can be any html element)
       </dd>
    </dl>
我尝试用一系列不同的数字0-2来寻找元素。0将该类放入所有第一个子html标记中。例如:

    <html class="hover">
    <body class="hover">
        <div class="hover"> 

。。。等等。这不是我想要的。这让我相信$(这个)实际上是针对窗口的,而不是我个人的dd元素


无论如何,如果有人能给我一些启示,我将不胜感激。谢谢。

问题在于语法。尝试:

$('dd').each(function() {
    $(':nth-child(2)', this).addClass('hover');
}

问题在于你的语法。尝试:

$('dd').each(function() {
    $(':nth-child(2)', this).addClass('hover');
}

不需要
.each()
调用-大多数jQuery函数都可以在元素列表上愉快地工作

只需匹配父级的第二个子级的
的所有
.children()
,然后添加所需的类:

$('dd').children(':nth-child(2)').addClass('hover');
工作演示

或者(感谢@ChrisPratt),您可以组合选择器:

$('dd > :nth-child(2)').addClass('hover');

不需要
.each()
调用-大多数jQuery函数都可以在元素列表上愉快地工作

只需匹配父级的第二个子级的
的所有
.children()
,然后添加所需的类:

$('dd').children(':nth-child(2)').addClass('hover');
工作演示

或者(感谢@ChrisPratt),您可以组合选择器:

$('dd > :nth-child(2)').addClass('hover');

谢谢,这也起作用了。然而,上面的答案对我的实现来说稍微好一点。再次感谢。真的。但据推测,他只是修改了代码以突出问题的重点。否则,最有效的方法实际上是
$('dd>:第n个子(2)')
他可能会这么做。@ChrisPratt true,如果代码被编辑并且
。each()
也在做其他事情。严格来说,您的选择器需要一个
,否则它将突出显示恰好是其父代的第二个子代的任何子代。这是一个很好的捕获,因为我在开始使用它时注意到它正在这样做。谢谢,这也起到了作用。然而,上面的答案对我的实现来说稍微好一点。再次感谢。真的。但据推测,他只是修改了代码以突出问题的重点。否则,最有效的方法实际上是
$('dd>:第n个子(2)')
他可能会这么做。@ChrisPratt true,如果代码被编辑并且
。each()
也在做其他事情。严格地说,您的选择器需要一个
,否则它将突出显示恰好是其父代的第二个子代的任何子代。这是一个很好的捕获,因为我在开始玩它时注意到它这样做。