Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   Получене содержимого динамически добавленного элемента (https://javascript.ru/forum/jquery/64364-poluchene-soderzhimogo-dinamicheski-dobavlennogo-ehlementa.html)

berluskuni 05.08.2016 18:40

Получене содержимого динамически добавленного элемента
 
Уважаемы Гуру!
подскажите можалуйста как правильно вытащить содержимое из динамически добавленного элемента!
теперь ситуация
<div class="task1">
    <div class="row task">
        <div class="col-lg-1 col-md-2 icon" ><span class="glyphicon glyphicon-calendar"></span>
        </div>
        <div class="col-lg-9 col-md-6 text" id="task1">Task_New</div>
        <div class="col-lg-1 col-md-2 edit"><span class="glyphicon glyphicon-pencil" name="task1"></span></div>
        <div class="col-lg-1 col-md-2 trash"><span class="glyphicon glyphicon-trash" name ="task1"></span></div>
    </div>
    <div class="row add_task">
        <div class="col-lg-1 col-md-2 plus"><span class="glyphicon glyphicon-plus"></span></div>
        <div class="col-lg-9 col-md-7 in_text">
            <input type="text" id="in_text" class="form-control" placeholder="Start typing here to create a task">
        </div>
        <div class="col-lg-2 col-md-3 task_add" name ="task1">Add Task</div>
    </div>

вот такое генерируется автоматически нужно повесить обработчик эт я сделал работает на Add Task но мне нужно как то еще вытащить содержимое input и блока с текстом d="task1" перелапатил кучу многоинфавезде ток обработчик on()
во Js код
$(document).on('click', '.task_add', function(e){
        e.preventDefault();
        var id = $(this).attr('name');
        /*var task_info = $('input[id=in_text]').val();*/
        var task_info = $(this).find('.in_text').text();
        alert(task_info);
        var csrfmiddlewaretoken = $('input[name=csrfmiddlewaretoken]');
        $.ajax({
            url:'/task_info/',
            type: 'POST',
            dataType: 'html',
            data: {
                'task': $('#'+id+'').text(),
                'task_info': task_info,
                'csrfmiddlewaretoken': csrfmiddlewaretoken.val()
            },
            cache: false,
            statusCode: {
                200: function(){
                    var html = template_task_info(task_info);
                    $('.'+id+'').append(html);
                    $('#in_text').val('');
                    return false
                },
                401: function(){
                    alert('The server is not available');

если дергать серверную часть то все норм работает но по заданию надо все через динамику делать!
Заранее благодарен!

рони 05.08.2016 19:25

berluskuni,
var task_info = $(this).parent().find('.in_text').text();
или

var task_info = $(this).prev().find('.in_text').text();

структура html перед вами, идите по дереву до ближайщей общей вершины двух элементов(1 пример) или через ближайшего соседа(2 пример)

berluskuni 08.08.2016 11:03

Спасибо но не получилось не первый не второй вариант пишет undefined и все:(
я знаком с теорией графоф и пробовал так делать может есть какие другие пути или хотябы в какую сторону двигаться

рони 08.08.2016 11:21

berluskuni,
var task_info = $(this).find('#in_text').val();

berluskuni 10.08.2016 13:11

да спасибо помогло в конце концов
var task_info = $(this).parent().find('.in_text').text();

вот это походу вместо класса там id использовался пордон не заметил


Часовой пояс GMT +3, время: 06:23.