Селекторы jQuery - как выбирать элементы по нескольким критериям, включая тип их «следующего» элемента - PullRequest
1 голос
/ 12 октября 2010

Используя jQuery, мне нужно выбрать элементы:
под «меню» только DIV
И являются элементами DT
И сопровождаются элементом DD

В этом примере HTML я бы хотел выбрать только идентификаторы "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 ]

3 голосов
/ 12 октября 2010

Вы можете пойти немного назад, вот так:

​$("#menu dd").prev("dt")

Вы можете проверить это здесь . Это переходит к #menu с использованием селектора #ID , находит все потомки <dd> элементов с селектором , затем использует .prev() чтобы вернуться к брату <dt>, который непосредственно предшествует ему, если он есть.

0 голосов
/ 12 октября 2010

Это выберет <dd> элементы, которые имеют предыдущий <dt> элемент. Затем он использует .prev(), чтобы вернуться к своему брату <dt>.

$('#menu dt + dd').prev()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...