Как создать карту сайта с помощью jQuery - PullRequest
1 голос
/ 07 сентября 2010

У меня есть следующая разметка

<div id="mnuMain">
    <ul>
        <li><a href="#">Dashboard</a></li>
        <li><a href="#">Market Trends</a></li>
        <li><a href="#">Master</a>
            <ul>
                <li><a href="#">Products</a></li>
                <li><a href="#">Segments</a></li>
                <li><a href="#" >Companies</a></li>
            </ul>
        </li>
        <li><a href="#">Settings</a>
            <ul>
                <li><a href="#">Dashboard Settings</a></li>
            </ul>
        </li>
    </ul>
    <br style="clear: left" />
</div>

<div id="divNavigation" style="height:20px;width:100%;
background:gray;color:white">        
</div> 

Мой вопрос

Как отследить родителей вверх, когда я нажимаю на конкретный <a>, чтобы divNavigation будет содержать предположим, что теперь я нажал на «Сегменты» divNavigation должен иметь Master > Segments со ссылками.

Ответы [ 2 ]

2 голосов
/ 07 сентября 2010

быстрых кодов

$(function() {
    $('#mnuMain ul li a').click(function() {

        var $li = $(this).parents('li');
        var container = $('#divNavigation').empty();

        $li.each(function(i) {
            if (i > 0) {
                $('<span>&gt;</span>').prependTo(container);
            }
            $(this).children('a:first').clone().prependTo(container);
        });

        return false;
    });
});​

демо

1 голос
/ 07 сентября 2010

$("#mya").parent() для доступа к непосредственному родителю. Используйте родителей () для доступа ко всем предкам. Это если у вас есть идентификатор. Если нет, то вам может понадобиться что-то вроде этого:

$("a").each( var parent = $(this).parent(); <use parent to do stuff>);
...