jQuery: выберите последнего родителя дочернего элемента - PullRequest
1 голос
/ 16 марта 2011

Как бы получить самый верхний уровень tr, выбрав те, которые имеют промежутки в следующем HTML:

<table>
    <tr><!-- THIS ONE -->
        <td>
            <table>
                <tr>
                    <td><span></span></td>
                </tr>
            </table>
        </td>
        <td><span></span></td>
    </tr>
    <tr><!-- AND THIS ONE -->
        <td><span></span></td>
        <td><span></span></td>
    </tr>
</table>

Так что-то вроде:

$('table span').parent('tr:last')

Хотя, к сожалению, это возвращает только один tr ...

Ответы [ 5 ]

4 голосов
/ 16 марта 2011

используйте: имеет селектор, например. table#topmost > tr:has(span)

0 голосов
/ 16 марта 2011

Мне кажется, что самый верхний уровень всегда будет в самой верхней таблице, поэтому вам нужно только проверить эти строки

$('#topmost-table>tr:has(span)').stuff();

<table id="topmost-table">
    <tr>
        <td>
            <table>
                <tr>
                    <td><span></span></td>
                </tr>
            </table>
        </td>
        <td><span></span></td>
    </tr>
    <tr>
        <td><span></span></td>
        <td><span></span></td>
    </tr>
</table>
0 голосов
/ 16 марта 2011
$(document).ready(function() {
        $('table span').each(function(){
            //do something with each tr you find
            $(this).parents('tr:last');
        }); 
    });
0 голосов
/ 16 марта 2011

Возможно:

$('table span').parentsUntil('tr');

Но это не сработает, потому что то, как вы отформатировали TR, - это братья и сестры, а не родители

Так что в этом случае ... измени свой HTML на -

<table>
    <tr>
        <td>
            <table>
                <tr>
                    <td><span></span></td>
                </tr>
            </table>
        </td>
        <td><span></span></td>
    </tr>
    <tr>
        <td><span></span></td>
        <td><span></span></td>
    </tr>
</table>

и приведенный выше JavaScript будет работать.

0 голосов
/ 16 марта 2011

Ваш HTML неверен с самого начала. На самом деле вы никогда не открываете тег <tr>, вы просто пытаетесь закрыть его (</tr>).

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