JQuery:选择未知的子元素

时间:2012-01-10 17:26:47

标签: jquery selector

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

    <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>

我试过......

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

我尝试使用一系列不同的数字0-2试图找到该元素。 0将该类放在所有第一个子html标记中。例如:

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

......等不是我想要的顺便说一句。让我相信$(this)实际上是针对窗口而不是我个人的dd元素。

无论如何,如果有人可以发光,我会非常感激。感谢。

2 个答案:

答案 0 :(得分:3)

问题只是你的语法。尝试:

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

答案 1 :(得分:1)

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

只需匹配作为其父级的第二个孩子的.children()的所有<dd>,并添加所需的类:

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

http://jsfiddle.net/alnitak/TETbE/

的工作演示

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

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