I have a dictionary list and I want to access the 2nd child element without knowing what element it is. For example:
<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>
I tried …
$('dd').each(function() {
$(this + ':nth-child(2)').addClass('hover');
}
I tried this with a series of different number 0-2 trying to find the element. 0 puts the class in all first child html tags. For example:
<html class="hover">
<body class="hover">
<div class="hover">
… etc. Not what I want btw. Leading me to believe that $(this) is actually targeting the window and not my individual dd elements.
Anyway if anyone can shed some light I would greatly appreciate it. Thanks.
There’s no need for a
.each()call – most jQuery functions work happily on lists of elements.Just match all
.children()of a<dd>that are the 2nd child of their parent, and add the required class:working demo at http://jsfiddle.net/alnitak/TETbE/
or (thanks to @ChrisPratt) you can combine the selectors: