[英]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.