如何用JS/JQuery实现表格自定义语言自动编号(如孟加拉语)
用JavaScript/JQuery实现表格首列的孟加拉语自动编号
核心思路是先将阿拉伯数字转换为孟加拉语数字,再遍历表格行,在每行首列插入带编号的单元格。以下是无需第三方插件的实现方案:
1. 数字转换函数
首先实现阿拉伯数字到孟加拉语数字的转换,利用孟加拉语数字的编码规律(০到৯对应标准编码序列):
function toBengaliNumber(num) { const bengaliDigits = ['০', '১', '২', '৩', '৪', '৫', '৬', '৭', '৮', '৯']; return num.toString().split('').map(digit => bengaliDigits[parseInt(digit)]).join(''); }
2. 原生JavaScript实现
直接操作DOM完成编号插入:
// 获取目标表格 const table = document.querySelector('table'); // 获取所有表格行 const rows = table.querySelectorAll('tr'); rows.forEach((row, index) => { // 生成从1开始的孟加拉语编号 const bengaliNum = toBengaliNumber(index + 1); // 创建编号单元格 const numberCell = document.createElement('td'); numberCell.textContent = `${bengaliNum}.`; // 将编号单元格插入到行首 row.insertBefore(numberCell, row.firstChild); });
3. JQuery实现
如果项目已引入JQuery,可使用更简洁的写法:
function toBengaliNumber(num) { const bengaliDigits = ['০', '১', '২', '৩', '৪', '৫', '৬', '৭', '৮', '৯']; return num.toString().split('').map(digit => bengaliDigits[parseInt(digit)]).join(''); } // 遍历所有表格行并插入编号 $('table tr').each(function(index) { const bengaliNum = toBengaliNumber(index + 1); $(this).prepend(`<td>${bengaliNum}.</td>`); });
处理表头行(可选)
如果表格包含表头(带<th>的行),可跳过表头行避免编号:
- 原生JS版修改:
rows.forEach((row, index) => { // 检测到表头则跳过 if (row.querySelector('th')) return; const bengaliNum = toBengaliNumber(index + 1); const numberCell = document.createElement('td'); numberCell.textContent = `${bengaliNum}.`; row.insertBefore(numberCell, row.firstChild); });
- JQuery版修改:
$('table tr').each(function(index) { // 检测到表头则跳过 if ($(this).find('th').length > 0) return; const bengaliNum = toBengaliNumber(index + 1); $(this).prepend(`<td>${bengaliNum}.</td>`); });
将上述代码放在表格加载完成后执行(比如DOMContentLoaded事件回调中,或页面底部),即可实现如১. blue、২. red的编号效果。
内容的提问来源于stack exchange,提问作者Asma Binta Younus
相关产品推荐
相关产品推荐

