繁体   English   中英

如何正确创作或创建支持 HTML 数据-* 属性的 JQuery 插件?

[英]How to properly author or create a JQuery plugin that supports HTML data-*attributes?

我目前正在创建一个 JQuery 插件,它支持用于定义选项的数据属性。 我在 inte.net 上搜索了有关如何正确执行此操作的资源,但找不到任何资源。

到目前为止我做了什么:

HTML:

 <table id="myTable" data-columns='[{ "header": "Header1" },
                { "header": "Header2" },
                { "header": "Header3" }]'>
    </table>

插入:

 $.fn.myPlugin = function () {
        columns:""

    }
    var self = $(this)
    var foo = self.data("columns")

    //..some code to create columns

插件使用:

$("#myTable").myPlugin()

这是基于您的问题的最小 jQuery 插件。

 (function( $ ) { $.fn.myPlugin = function () { this.filter('table').each(function() { var container = $(this); var data = container.data('columns'); var html = '<tr>' + data.map(obj => '<th>' + obj.header + '</th>').join('') + '</tr>'; console.log('html: '+html); container.append(html); }); return this; } }( jQuery )); $('#myTable').myPlugin()
 #myTable th { border: 1px gray solid; padding: 1px 5px; }
 <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <table id="myTable" data-columns='[{ "header": "Header1" }, { "header": "Header2" }, { "header": "Header3" }]'> </table>

请注意.filter('table') ,它确保代码仅应用于表格。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM