javascript - 如何更新 DataTables DOM?

标签 javascript jquery-datatables

我正在使用 Datatables对于评论系统,用户可以通过点击星标(1 到 5)对每个项目进行评分。

<table cellpadding="0" cellspacing="0" border="0" class="table table-striped table-bordered" id="tabela-disciplinas-preferencia">
    <thead>
        <tr>
            <th>Semestre</th>
            <th>Curso</th>
            <th>Disciplina</th>
            <th>Nível de Interesse</th>
        </tr>
    </thead>
    <tbody>
    <tr>
        <td>1</td>
        <td>Engenharia de Software</td>
        <td>Redes</td>
        <td>    
            <div class="rating" valor="0">
                <span valor="5">☆</span><span valor="4">☆</span><span valor="3">☆</span><span valor="2">☆</span><span valor="1">☆</span>
            </div>
        </td>
    </tr>
     ....
    </tbody>
</table>

我的JS

$(document).ready(function() {
    $('#tabela-disciplinas-preferencia').dataTable( {
        "sPaginationType": "bootstrap"
    } );
});

但是,当用户点击对一项进行评分时,我更改了评分 div 中的 valor 属性,但数据表不会在内部更新它们的值。

点击评分事件

$(document).ready(function() {
    $('div.rating span').click(function(){
        starR= new StarRating( $(this).parent());
        starR.changeValue($(this).attr('valor'));
        //Get TR Element
         aPos = oTable.fnGetPosition( $(this).parent().parent().get(0) );
         aData = oTable.fnGetData( aPos[0] );
         //Get rating div
         rating = aData[3];
         aData[3] = $(rating).attr('valor', $(this).attr('valor'));
         // ????
         oTable.fnUpdate(aData[3]);          

    });
});

如何更新数据表 DOM?我已经获得数据并更改了值,但我如何才能更新回 oTable?

最佳答案

更改值并插入回 aData 已经更新了 oTable

$('div.rating span').click(function(){
        starR= new StarRating($(this).parent());
        starR.changeValue($(this).attr('valor'));
        //update oTable row data
        aPos = oTable.fnGetPosition( $(this).parent().parent().get(0) );
        aData = oTable.fnGetData( aPos[0] );
        aData[3] = $(aData[3]).attr('valor', starR.getValue());

    });

这是我找到的解决方案,看起来效果很好。

关于javascript - 如何更新 DataTables DOM?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12482643/

相关文章:

javascript - Ajax 排序服务器端,iSortCol_0 是否考虑隐藏列?

javascript - 如何销毁数据表的第一次初始化(模态内的数据表)

javascript - 动态画线时出错

JavaScript:如何访问表格第二行中的文本框

javascript - jQuery 在使用 rowspan 时选择列中的最后一个单元格

javascript - 如何使用服务器端处理对数据表进行搜索?

javascript - 为什么浏览器无法解析以下代码?

javascript - 使用 react 备忘录动态改变样式

jQuery 数据表 : control table width

php - 从 DataTables 中第 0 行的数据源请求未知参数 '1'