javascript - 使用 jquery(或 vanilla JS)在页面加载时格式化表格中的数字

标签 javascript jquery html dom

我有一张包含数字的表格,希望每千个数字的格式正确,1000 = 1,000。

我试着用 jquery 来做。

我的 table

<td class="sorting_1">373432</td>

我的 jquery 代码不起作用

$(".sorting_1").ready.replaceWith(function(x){
  return x.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ",");
});

我的原版 JS 代码:

var s1 = document.getElementsByClassName("sorting_1");
window.onload = function formatNumber(s1) {
  return s1.toString().replace(/(\d)(?=(\d{3})+(?!\d))/g, '$1,');  
}

表的输出应该从 373432 变为 373,432

最佳答案

不确定您从哪里获得现成的语法,但这似乎是错误的,并且 replaceWith 将替换该元素。您只需要交换文本。

$( document ).ready(function() {
  $(".sorting_1").text(function(i, text){ 
    return Number(text).toLocaleString()
  })
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<table>
  <tr>
    <td class="sorting_1">373432</td>
    <td class="sorting_1">12345</td>
    <td class="sorting_1">123456</td>
  </tr>
</table>

没有 jQuery

window.addEventListener("load", function () {
  document.querySelectorAll(".sorting_1").forEach( function (td) {
    td.textContent = Number(td.textContent).toLocaleString();
  })
});
<table>
  <tr>
    <td class="sorting_1">373432</td>
    <td class="sorting_1">12345</td>
    <td class="sorting_1">123456</td>
  </tr>
</table>

关于javascript - 使用 jquery(或 vanilla JS)在页面加载时格式化表格中的数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57597336/

相关文章:

javascript - Vue 3 - inject() 只能在 setup() 或功能组件内部使用

javascript - 带有自定义滚动条的 jQuery 选择框 (roblaplaca) 不起作用

javascript - 在 Windows Metro 风格的 Javascript 应用程序中读取文件内容

html - 使用 Less 创建文本危险应用于面板时的默认样式

javascript - 有人可以向我解释一下这个 JS 代码和错误吗?为什么会失败?

javascript - 拖放 HTML 表格列(而不是行)

jquery - 为什么使用 JQuery 元素创建语法?

javascript - 在 javascript 或 css 中定位前一个 div

Javascript 从另一个脚本结果中提取或映射特定的 id/值

html css3解析错误