Использование jQuery для поиска идентификатора содержащего элемента - PullRequest
1 голос
/ 26 июля 2010
<li id="someID">
    <div id="div1">Text</div>
    <div id="div2">Text x 2</div>
    <div id="div3">Text x 3</div>
        <span>
            <div>
                <ul>
                    <li class="menuItem">Menu Item</li>
                </ul>
            </div>
        </span>
</li>

Короче говоря, я пытаюсь найти идентификатор "someID" при нажатии на класс "menuItem". Код ниже, кажется, не сокращает его.

$('.menuItem').click(function(){alert($(this).closest('li').attr('id'));});

Ответы [ 4 ]

5 голосов
/ 26 июля 2010

вместо .closest('li'). используйте .parents('li'). ( обратите внимание на множественное число )

Это даже упоминается в документации closest().

2 голосов
/ 26 июля 2010

Другой подход - поместить класс в li, который вы пытаетесь идентифицировать, и сделать селектор .closest () более точным.

например

<li class="master" id="someID">
    <div id="div1">Text</div>
    <div id="div2">Text x 2</div>
    <div id="div3">Text x 3</div>
        <span>
            <div>
                <ul>
                    <li class="menuItem">Menu Item</li>
                </ul>
            </div>
        </span>
</li>

$('.menuItem').click(function(){alert($(this).closest('li.master').attr('id'));});
1 голос
/ 26 июля 2010

вы можете использовать .parent

.parents("li") so it will return the li parent
1 голос
/ 26 июля 2010

Если вам нужен родитель, тогда вы можете использовать .parent, который задокументирован здесь

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...