Как поучить значение из аттрибута data

228
14 октября 2017, 18:24

Нужно было получить данные из аттрибута data-user_id

$('.submit_button').click(function () {
$.ajax(
    {
        url:'/../title/comment',
        type:'post',
        data: {
            'comment_text': $('#comment_area').val(),
            'title_id' : $(this).data('title_id'),
        },
        success:function (data) {
            if (data != "u're guest")
                if (data !='update')
              $('#comment_area').prepend(data);
            else {
                    alert($('.submit_button').data('user_id'));
                    )
                }
            else alert('Чтобы оставлять комментарии войдите в профиль');
            //Checking if user is logged in
        }
    }
)

});

Выводится undefined, при том что значения из аттрибута title_id получить удаётся

Answer 1

До запроса сохраните текущий элемент ($(this)) в переменную, и уже в запросе в место $(this) используете ту переменную, а user_id вы получаете потому что не используете $(this) а сразу выбираете элемент с классом ($('.submit_button').data('user_id')).

$('.submit_button').click(function() { 
        var this_button = $(this); 
        $.ajax( 
                { 
                    url: '/../title/comment', 
                    type: 'post', 
                    data: { 
                        'comment_text': $('#comment_area').val(), 
                        'title_id': this_button.data('title_id'), 
                    }, 
                    beforeSend: function(){ 
                        console.log(this_button.data('title_id')); 
                    }, 
                    success: function(data) { 
                        if (data != "u're guest") 
                            if (data != 'update') 
                                $('#comment_area').prepend(data); 
                            else { 
                                alert($('.submit_button').data('user_id')); 
                            } 
                        else 
                            alert('Чтобы оставлять комментарии войдите в профиль'); 
                    } 
                } 
        ) 
    });
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
<div class="submit_button" data-title_id="title_idd" data-user_id="xxx">click</div>

Answer 2

Можно использовать getAttribute:

let element = document.getElementByClassName('submit_button')[0]; //получаем элемент по классу
let result = element.getAttribute('data-user_id');
Answer 3

$('.submit_button').click(function(){ 
			alert($(this).data('title_id')); 
		})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
	<button class="submit_button" data-title_id="title_idd" data-user_id="xxx">click</button>

var user_id = $(this).data('user_id');

Как-то так. Пардон, моя ошибка data не учитывается... Этот код отработает...

READ ALSO
Ударение в Google fonts - частичный рендеринг в Google Chrome

Ударение в Google fonts - частичный рендеринг в Google Chrome

Я использую шрифт Open Sans (https://fontsgoogle

242
Можно ли SVG вставить как икону в title

Можно ли SVG вставить как икону в title

Господа, вопрос собственно в самом заголовке, у меня LOGO для сайта написан в svgА можно ли svg использовать как икону для title тоже, что бы не переводить...

236
Ошибка в доступе к изменениям в mysql на localhost!

Ошибка в доступе к изменениям в mysql на localhost!

ЗдравствуйтеПодскажите по бд

201
Java 9 и Android будет ли миру? [требует правки]

Java 9 и Android будет ли миру? [требует правки]

Не так давно официально состоялся релиз Java 9 SEПринёс он с собой много новинок в плане функциональности, а также и скорости, вплоть до компилятора)...

194