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

Posted

技术标签:

【中文标题】获取 jquery 中的链接元素以在 $.fn.FunctionName 中使用【英文标题】:Get element of chaining in jquery to use in $.fn.FunctionName获取 jquery 中的链接元素以在 $.fn.FunctionName 中使用 【发布时间】:2019-12-14 12:37:41 【问题描述】:

我正在创建一个基于 Jquery 和 Bootrap(最新版本)的插件,由该方法/代码调用:

$(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>

并且这个脚本/插件开始如下......

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

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

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

在其中添加一个表格...

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...我不知道如何检索...

【问题讨论】:

您是否尝试将您的函数直接放入您的插件中,例如:$.fn.plgCalendar = function(param) function plgCalendar(param) ... ; ; 不,我喜欢设置它,因为任何人都需要访问 JQuery 对象。 【参考方案1】:

这样解决:

(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;

【讨论】:

以上是关于获取 jquery 中的链接元素以在 $.fn.FunctionName 中使用的主要内容,如果未能解决你的问题,请参考以下文章

获取 JQuery 中的下一个元素属性

jQuery 显示带有更多和更少链接的第一个 X 元素

添加一个按钮以在 jQuery 数据表中打开弹出窗口

需要更改此 JQuery 代码以在处理之前检查元素是不是存在 [重复]

获取下一个元素 Jquery

jQuery - 获取与单击的元素在同一行中的表格单元格的文本值