JQuery выбрав "родители" - PullRequest
1 голос
/ 07 декабря 2011

Если у меня есть следующее:

<div id="wrapper">
    <h3>Title</h3><!-- I want to select this --> 
    <a name="anchor-name"></a>
    <div class="section">
        <h4>Sub section</h4>
        <a name="subsection-name"></a> <!-- this is selected -->
        <div class="subsection"></div>
    </div>
    <h3>Title</h3>
    <a name="anchor-name"> </a>
    <div class="section">
        <h4>Sub section</h4>
        <a name="subsection-name"></a> 
        <div class="subsection"></div>
    </div>
    <h3>Title</h3>
    <a name="anchor-name"></a>
    <div class="section">
        <h4>Sub section</h4>
        <a name="subsection-name"></a> 
        <div class="subsection"></div>
    </div>
</div>

И я выбрал привязку (как указано), как я могу получить доступ к <h3>Title</h3>?Я хочу получить ближайший "родитель h3" ...

Ответы [ 3 ]

4 голосов
/ 07 декабря 2011

Прежде чем идти дальше, стоит отметить, что h3 является , а не родителем элемента a.Однако следующее должно выбрать h4 при условии согласованной структуры HTML:

$(this).closest('div.section').prevAll('h3:first');

Демонстрация JS Fiddle .

Кстати, если этот фрагмент HTML имеет видсодержится в другом элементе, чтобы дать:

<div class="contentWrapper">
    <h3>Title</h3>
             <a name="anchor-name"></a>
             <div class="section">
                    <h4>Sub section</h4>
                    <a name="subsection-name"></a> // this is selected
    <!-- ...other stuff... -->
</div>

Тогда было бы проще всего использовать:

$(this).closest('.contentWrapper').find('h3');

Ссылки:

1 голос
/ 07 декабря 2011

h3 не является родителем, это дочерний элемент в родительском объекте, что "содержит" h3?

Представьте, что это еще один div с идентификатором main-holder .. и что выбранный a равен $ (this):

$ h3 = $ (this) .parent ("#mainholder "). детей (" h3" )

0 голосов
/ 07 декабря 2011

Используйте функцию jQuery closest();

$("a[name=subsection-name]").closest("h3");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...