Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Datatable-更新属性数据_Javascript_Jquery_Datatable_Custom Data Attribute - Fatal编程技术网

Javascript Datatable-更新属性数据

Javascript Datatable-更新属性数据,javascript,jquery,datatable,custom-data-attribute,Javascript,Jquery,Datatable,Custom Data Attribute,因此,我有一个DataTable,我想在我的td的最后一个a上更新数据属性data paiement。以下是一个例子: <td class="dropdown open"> <a class="btn btn-default" id="dropdownMenuButton" data-toggle="dropdown" aria-haspopup="true" aria-expanded="true"><i class="fa fa-cog"><

因此,我有一个
DataTable
,我想在我的
td
的最后一个
a
上更新数据属性
data paiement
。以下是一个例子:

<td class="dropdown open">
    <a class="btn btn-default" id="dropdownMenuButton" data-toggle="dropdown" aria-haspopup="true" aria-expanded="true"><i class="fa fa-cog"></i></a>
    <div class="dropdown-menu" aria-labelledby="dropdownMenuButton">
        <a class="dropdown-item" href="/fr/admin/evenements/inscriptions/modifier?URL=noel-des-enfants-2017&amp;id=3440">Modifier</a><br>
        <a class="dropdown-item" href="#" data-delete-inscription="3440" onclick="DeleteInscription(3440, 'DEMN')">Supprimer</a><br>
        <a class="dropdown-item btnPaiement" href="#" data-update-paiement="3440" data-paiement="1" data-acronym="DEMN">Changer le statut de paiement</a><br>
    </div>
changestatuspaement
中,我更新
数据paement
如下:

$('a[data-update-paiement="' + id + '"]').attr('data-paiement', paye == 1 ? '0' : '1');
一切正常,HTML已更新,因此
data paiement
现在等于
0

但是,当我重新单击它时,在我的
console.log($(this.data('paiement'))中数据对
值仍然是1

是因为
DataTable
没有更新他的值吗


谢谢

访问jQuery
.data()
函数会创建一个内存中的对象,其中包含元素的数据属性值。使用jQuery
.attr()
函数更改属性值只会更新属性本身,但更改不会反映到jQuery处理的基础数据模型上

changeStatusPaItem
中,您可能需要替换:

 $('a[data-update-paiement="' + id + '"]').attr('data-paiement', paye == 1 ? '0' : '1');
 $('a[data-update-paiement="' + id + '"]').data('paiement', paye == 1 ? '0' : '1');
与:

 $('a[data-update-paiement="' + id + '"]').attr('data-paiement', paye == 1 ? '0' : '1');
 $('a[data-update-paiement="' + id + '"]').data('paiement', paye == 1 ? '0' : '1');
这里有一个演示:

let$tester=$('span');
$('div').append($('

',{text:'第一次访问数据:'+$tester.data('test')})); $tester.attr('data-test',2); $('div').append($('

',{text:'访问数据两次(更新后):'+$tester.data('test')})); $('div').append($('

',{text:'但是同时使用attr函数更新了属性:'+$tester.attr('data-test'))}); $('div').append($('

',{text:'您必须通过数据函数进行修改。$('span”).data(“test”,2)+($('span”).data(“test”,2),'')); $('div').append($('

',{text:'现在,通过“数据函数”访问值将为您提供正确的值:'+($tester.data('test')))}); $('div').append($('

',{text:'因此在至少为元素调用了一次“data”函数后使用$element.data.'});


访问jQuery
.data()
函数会创建一个内存中的对象,其中包含元素的数据属性值。使用jQuery
.attr()
函数更改属性值只会更新属性本身,但更改不会反映到jQuery处理的基础数据模型上

changeStatusPaItem
中,您可能需要替换:

 $('a[data-update-paiement="' + id + '"]').attr('data-paiement', paye == 1 ? '0' : '1');
 $('a[data-update-paiement="' + id + '"]').data('paiement', paye == 1 ? '0' : '1');
与:

 $('a[data-update-paiement="' + id + '"]').attr('data-paiement', paye == 1 ? '0' : '1');
 $('a[data-update-paiement="' + id + '"]').data('paiement', paye == 1 ? '0' : '1');
这里有一个演示:

let$tester=$('span');
$('div').append($('

',{text:'第一次访问数据:'+$tester.data('test')})); $tester.attr('data-test',2); $('div').append($('

',{text:'访问数据两次(更新后):'+$tester.data('test')})); $('div').append($('

',{text:'但是同时使用attr函数更新了属性:'+$tester.attr('data-test'))}); $('div').append($('

',{text:'您必须通过数据函数进行修改。$('span”).data(“test”,2)+($('span”).data(“test”,2),'')); $('div').append($('

',{text:'现在,通过“数据函数”访问值将为您提供正确的值:'+($tester.data('test')))}); $('div').append($('

',{text:'因此,在为元素至少调用一次“data”函数后使用$element.data.'})



您能否将整个代码共享到一个片段中,以便我们可以看到它的运行情况?(使用问题文本编辑器中的Ctrl+m)您还需要什么?这是所有关于我的问题的代码,其余的对我的bug来说都是无用的。你能在一个代码片段中分享整个代码吗,这样我们就可以看到它的运行了?(使用问题文本编辑器中的Ctrl+m)您还需要什么?这是所有关于我的问题的代码,其余的对我的bug来说都是无用的。