访问$(this)值返回未定义的jquery

问题描述 投票:1回答:2

我正在尝试在select2初始化内访问$(this),但它返回undefined

$(".tags").each(function() {
    var placeholder = "Select Email";
    if($(this).attr('name') === 'names[]')
        placeholder = "Select Name";
    $(this).select2({
        tags: true,
        placeholder: placeholder,
        language: {
            noResults: function () {
                return 'Type and enter to add new';
            },
        },
        escapeMarkup: function (markup) {
            return markup;
        },
        createTag: function(params) {
            console.log($(this).attr('name')); // returns undefined
            if (params.term.indexOf('@') === -1)
                return null;
            return {
                id: params.term,
                text: params.term
            }
        }
    })
});

select2()被初始化为每个.tags。我需要在这里访问内部的$(this)

我该怎么做?

javascript jquery this jquery-select2
2个回答
5
投票

您可以在调用$(this)之前保留对select2()的引用


3
投票

问题是因为createTag函数不在实例化select2的元素的范围内运行。

最新问题
© www.soinside.com 2019 - 2024. All rights reserved.