javascript - Jquery 获取使用 ajax 创建的元素

标签 javascript jquery

从ajax获取数据并创建<div>后元素我无法从创建的元素中获取 id。例如:

我的 Ajax:

$('[id^="view-category_"]').click(function () {
    var id = $(this).attr('id').split('_');
    var url = "{{ URL::route('get_category_videos') }}",
            category_id = id[1];
    $.ajax({
        type: "POST",
        url: url,
        data: {category_id: category_id},
        success: function (data) {
            $('#categories_video_list').html('');
            $.each(data, function( index, value ) {
                $('#categories_video_list').append('<div id="choose-video-id_'+value.id+'"'+value.subject+'</div>');
            });
            $('#videos_popup').show();
        }
    });
    return false;
});

value.idchoose-video-id_'+value.id由响应 ajax 数组创建,现在我尝试设置单击它来获取 id,我的下面的代码不起作用

$('[id^="choose-video-id_"]').on('click',function () {
    var id = $(this).attr('id').split('_');
    alert(id[1]);
});

最佳答案

您正在动态创建元素。所以正常的绑定(bind)在这里不起作用。您需要为此使用委托(delegate)..

您还可以像这样为元素分配数据属性,

'<div id="choose-video-id_' + value.id + '"' + value.subject + ' data-id="' + value.id + '"</div>',

然后你可以像这样获取值id,

$(document).on('click', '[id^="choose-video-id_"]', function () {

    alert($(this).data("id"));
});

关于javascript - Jquery 获取使用 ajax 创建的元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33499653/

相关文章:

javascript - 在 jQuery/Javascript 中生成复杂的 HTML 元素

javascript - 画廊的图像预加载器一张一张?这有什么问题吗?

javascript - 如何列出对象?

jquery - 如何解决我的 Bootstrap Accordion 问题?

javascript - 使用 jquery 错误更新 JSON

javascript - 悬停 2 秒后提交表单

javascript - 我如何解析 json 值并将 id 放入变量中

javascript - 仅使用一张图像放大图像

javascript - 从自定义属性中获取数据到输入字段

javascript - 重定向在 springboot Controller 中不起作用