0

有没有办法在选中复选框时增加 HTML 表格单元格的值(仅整数),然后在取消选中时删除添加?

我想使用一个复选框来更改单元格的值,我将它用作从 HTML 表格绘制的高图表上的过滤器。因此,如果单元格的值发生变化,并且我刷新图表,用户将看到图表点上升。同样,未选中的框会将值减小回原始数字。

我只找到了有关文本区域的答案,并且在将选择器分配给 td 时它失败了。

4

3 回答 3

1

因为表格单元格没有值,所以您不能像设置文本框或文本区域那样设置值。

您将使用.text().html()设置该值。

var cell = $("#yourSelector");
var currentVal = parseInt(cell.text(), 10);
cell.text( currentVal + 1 );
于 2013-09-12T19:53:17.547 回答
0

给定 HTML 大致如下:

<table>
    <tbody>
        <tr>
            <td>
                <label>
                    <input type="checkbox" class="togglePlusOne" />
                    Add, or remove, 1
                </label>
            </td>
            <td>
                1
            </td>
        </tr>
    </tbody>
</table>

1然后下面的 jQuery 将允许在检查或取消检查时分别从文本值(转换为整数)发生加法或减法:

$('.togglePlusOne').change(function(){
    var nextCell = $(this).closest('td').next().toggleClass('oneAdded');
    nextCell.text(function(i,t){
        return parseInt(t,10) + ($(this).hasClass('oneAdded') ? 1 : -1);
    });
});

JS 小提琴演示

参考:

于 2013-09-12T19:59:54.270 回答
0

HTML

<table>
    <tbody>
        <tr>
            <td>
                <label>
                    <input type="checkbox" class="togglePlusOne" />Add, or remove, 1 <br>
                    <input type="checkbox" class="togglePlusOne" />Add, or remove, 1<br>
                    <input type="checkbox" class="togglePlusOne" />Add, or remove, 1<br>
                    <input type="checkbox" class="togglePlusOne" />Add, or remove, 1<br>
                    <input type="checkbox" class="togglePlusOne" />Add, or remove, 1<br>
                    <input type="checkbox" class="togglePlusOne" />Add, or remove, 1<br>
                </label>
            </td>
            <td id="tsCell">

            </td>
        </tr>
    </tbody>
</table>

JAVASCRIPT

<script>
   $(function(){
    var $tableCellObj = $("#tsCell");
    $('.togglePlusOne').click(function () {
             var cellValueInt = parseInt($tableCellObj.html());
             cellValueInt = isNaN(cellValueInt) ? 0:cellValueInt;
                  if(this.checked === true)    {
                      $tableCellObj.text(cellValueInt+1)
                  }else{
                      $tableCellObj.text(cellValueInt-1)
                 }
     });
});
</script>
于 2013-09-12T20:04:33.933 回答