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&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'))中在我的jQuery调用中,数据对
值仍然是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来说都是无用的。