使用jQuery我需要选择以下元素:
在“菜单”DIV下只有
AND是DT元素
AND后面跟着DD元素
在此示例HTML中,我只想选择ID“select_me1”和“select_me2”
<html><body>
<div id="menu">
<dl>
<dt id="dont_select1"><a href="#">don't 1</a></dt>
</dl>
<dl>
<dt id="dont_select2"><a href="#">don't 2</a></dt>
</dl>
<dl>
<dt id="dont_select3"><a href="#">don't 3</a></dt>
</dl>
<dl>
<dt id="select_me1"><a>select me 1</a></dt>
<dd id="community-sub">
<ul>
<li><a href="#">Sub 1</a></li>
<li><a href="#">Sub 2</a></li>
<li><a href="#">Sub 3</a></li>
</ul>
</dd>
</dl>
<dl>
<dt id="select_me2"><a>select me 2</a></dt>
<dd id="state-sub">
<ul>
<li><a href="#">Sub 4</a></li>
<li><a href="#">Sub 5</a></li>
<li><a href="#">Sub 6</a></li>
</ul>
</dd>
</dl>
</div>
<div id="other">
<dl>
<dt id="else1"><a href="#">else 1</a></dt>
</dl>
<dl>
<dt id="else2-main"><a>else 2</a></dt>
<dd id="else2-sub">
<ul>
<li><a href="#">Sub 1</a></li>
<li><a href="#">Sub 2</a></li>
</ul>
</dd>
</dl>
</div>
</body>
</html>
请帮忙!感谢。
答案 0 :(得分:3)
你可以在这里稍微退一步,就像这样:
$("#menu dd").prev("dt")
You can test it out here。这使用#ID
selector转到#menu
,找到descendant的所有element selector <dd>
元素,然后使用.prev()
返回{{} 1}}直接在它之前的兄弟姐妹,如果有的话。
答案 1 :(得分:0)
这将选择具有先前<dd>
元素的<dt>
元素。然后,它使用.prev()
遍历其兄弟<dt>
。
$('#menu dt + dd').prev()