Кнопка “Ответить” на jQuery

285
12 декабря 2016, 10:16

Есть вот такая html структура комментариев:

</ul>
    </li>
        <div class="comment clearfix" id="8">
            <div class="avatar">
                <img ... />         
            </div>
            <div class="reply">
                <a>Ответить</a>
            </div>
            <div class="author">
                <p>...</p>
            </div>
            <div class="text">
                <p>...</p>
            </div>
        </div>
    </li>
    <li>
        <div class="comment clearfix" id="7">
            <div class="avatar">
                <img ... />         
            </div>
            <div class="reply">
                <a>Ответить</a>
            </div>
            <div class="author">
                <p>...</p>
            </div>
            <div class="text">
                <p>...</p>
            </div>
        </div>
    </li>
</ul>

Собственно, как можно посредством jQuery при нажатии на class="reply" взять с этого комментария (определить по id) имя автора class="author" и добавить его в форму (form) на странице вместе с ссылкой?

чтобы получилось приблизительно следующее:

<a href="http://сайт.ru/статья (нужно получить адрес текущей страницы) #8 (нужно подставить id комментария на который отвечаете)">Имя автора (нужно подставить имя автора которому отвечаете)</a>
<a href="http://сайт.ru/статья#8">Имя автора</a>
Answer 1
    <script type="text/javascript">
        $(function(){
            $('.reply').click(function(){
                var comment = $(this).parents('.comment'); // получили комментарий
                var id = comment.attr('id'); // получили id комментария
                var author_name = comment.find('.author p').text(); // получили имя автора
                $('.form textarea').html('<a href="'+id+'">'+author_name+'</a>'); // подставил ссылку в форму
            });
        });
    </script>

Прошу заметить, что подставлять полный адрес в ссылку не обязательно, достаточно только #номер_комента

$('.form textarea') - замените на свое