获取 jquery 中的链接元素以在 $.fn.{FunctionName} 中使用

Get element of chaining in jquery to use in $.fn.{FunctionName}

我正在创建一个基于 Jquery 和 Bootrap(最新版本)的插件,由 method/code:

调用
$(document).find('.calendar-plug-bs').each(function(index, el) {
    //$(this).plgCalendar("destroy"); Testing for destroy if exist...
    $(this).plgCalendar();
})

它与这样的元素一起工作:

<div class="form-group row">
    <div class="calendar-plug-bs"></div>
</div>

而这个script/plugin开始如下...

(function($) {
    $.fn.plgCalendar = function(param) {
        return window.plgCalendar(param);
    };
}(jQuery));

但问题是我需要检索调用初始函数的节点...

|------|
$(this).plgCalendar();

在其中添加一个table ...

function plgCalendar(param = null) {
    var r = null;
    if (param !== null) {
        if (typeof param.func !== 'undefined') {
            if (param.func === "destroy") {

            } else if (param.func === "getValue") {

            }
        } else {
            console.log('%cMSG: (func) not Set', 'color: #bada55');
        }
    } else {
        /*****WORKING ON THIS***/
        var target = $(this);
        console.log(target);
        if (target.is("div")) {
            var id = window.BuildRandID();
            var $tableObject = $('<table/>', {
                'class': 'bigger',
                'id': id
            });
            $(target).append($tableObject);
            return id;
        } else {
            window.alert("calendar-plug-bs must be a div");
        }
        /*****WORKING ON THIS***/
    }
    return r;
}

失败是 var taget 不是 div...我不知道如何检索...

这样解决:

(function($) {
    $.fn.plgCalendar = function(param = null) {
        param = window.plgCalendarParam(param);
        param['this'] = $(this);
        return window.plgCalendar(param);
    };
}(jQuery));

function plgCalendarParam(param) {
    if (param == null) {
        param = [];
    }
    return param;
}

function plgCalendar(param) {
    var r = null;
    if (typeof param.func !== 'undefined') {
        if (param.func === "destroy") {

        } else if (param.func === "getValue") {

        }
    } else {
        /*****WORKING ON THIS***/
        var target = param['this'];
        if (target.is("div")) {
            var id = 'plgCalendar_' + window.BuildRandID();
            var $tableObject = $('<table/>', {
                'class': 'bigger',
                'id': id
            });
            $(target).append($tableObject);
            r = { 'id': id, 'init': true };
        } else {
            window.alert("calendar-plug-bs must be a div");
        }
        /*****WORKING ON THIS***/
    }
    return r;
}