Javascript更新到HTML表格单元格(从数千到数百万)

时间:2009-11-19 13:38:32

标签: javascript html css html-table

我需要在我的网络报告上创建一些Javascript,将表值转换为数千或数百万(例如,除以或乘以1000)。

问题是每个值都是“可点击的”(即它包含在锚标记中)。

这可能吗?

<table class="Table" >
<thead><tr>
  <th class="l Header" scope="col">£000s</th>
  <th class="l Header" scope="col">Col1</th>
  <th class="l Header" scope="col">Col2</th>
</tr></thead>
<tbody>
<tr>
  <td class="l Data">   My Data Row </td>
  <td class="l Data">   <a class=nums href="javascript:MyFunc();">  11,372,397</a></td>
  <td class="l Data">   <a class=nums href="javascript:MyFunc();">  11,344,327</a></td>
</tr>
</tbody>

修改

我正在使用IE6。基本上我们的目标是拥有“数千”和“数百万”按钮,以便表格的价值可以达到11,372k或11.4m等......

2 个答案:

答案 0 :(得分:3)

我会使用jQuery

$(function (){
    $.each($('.nums'), function () {
        $(this).html(Number($(this).html().replace(/,/g,"")) /*your math here*/);
    });
});

响应您的修改: 由于我很无聊,我为你编写了这段工作代码,圆形并插入',',如你所愿。

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script>

<table class="Table" >
<thead><tr>
  <th class="l Header" scope="col">£000s</th>
  <th class="l Header" scope="col">Col1</th>
  <th class="l Header" scope="col">Col2</th>
</tr></thead>
<tbody>
<tr>
  <td class="l Data">   My Data Row </td>
  <td class="l Data">   <a class="nums" href="javascript:MyFunc();">  11,372,397</a></td>
  <td class="l Data">   <a class="nums" href="javascript:MyFunc();">  11,344,327</a></td>
</tr>
</tbody>

<input type="button" onclick="toMillions();"> 
<input type="button" onclick="restore();"> 

<script type="text/javascript">

    $(function (){
        $.each($('.nums'), function () {
            $.data(this, "theValue", $(this).html());
        }); 
    });


    function toMillions(){
        $.each($('.nums'), function () {
            $(this).html(Number($.data(this,"theValue").replace(/,/g,"")) / 1000000 + ' million');
        });
    }

    function restore(){
        $.each($('.nums'), function () {
                $(this).html($.data(this,"theValue"));
        });
    }
</script>

答案 1 :(得分:1)

我会开始考虑document.getElementsByClassName('nums'),它会为你提供一个元素数组。像这样:

nums = document.getElementsByClassName('nums');
for (i in nums)
   nums[i].innerHTML = nums[i]+',000';i

这可能仅适用于较新的浏览器,因此您可能希望在javascript框架中使用类似的方法。 Jquery允许使用选择器

按类名获取元素
$('.nums')