jQuery选择器 - 如何在多个条件上选择元素,包括它们的“next”元素的类型

时间:2010-10-12 15:31:44

标签: javascript jquery jquery-selectors

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

请帮忙!感谢。

2 个答案:

答案 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()