不同的结果attr所和数据
<p id="getMessage" data-sid="158">
<strong>Name</strong> : Rahul Kumar<br>
<strong>Total </strong> : 25<br>
</p>
这是用我的动态生成HTML的jQuery不同的结果attr所和数据
现在,这是稳定和修复
我在康寿执行一些命令,发现这些结果
$('#getMessage').attr('data-sid');
"158"
这是预期的。
但是,当我执行此
$('#getMessage').data('sid');
160
它显示了160,应该是158吧?我使用$('#getMessage').attr('data-sid', result.studentDetails.SID);
来设置它。
.attr
将读取的实际属性。
.data
将读取该数据项的当前值。如果您的代码已更改该值(即,$('#getMessage').data('sid',160)
),该值将成为当前值。
如果更新。它会在HTML中更新对不对? –
@RahulKumar绝对不是 – Jamiec
@RahulKumar:它会更新数据属性而不是属性值。这就是它没有体现在属性中的原因。 –
的data()
功能将数据存储到一个特定的元素与指定的元件和/或返回所设定的值相关联
存储任意数据。
jQuery.data($('#element'), data);
在另一方面,attr()
获取或设置属性形成元件。
$('div').attr('data-test', 'test');
<div data-test="test"></div>
的要求工作的例子......,请注意,我可以改变数据属性的值,而不改变实际的属性
console.log($('#getMessage').attr('data-sid'));
console.log($('#getMessage').data('sid'));
$('#getMessage').data('sid', 160);
console.log($('#getMessage').attr('data-sid'));
console.log($('#getMessage').data('sid'));
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<p id="getMessage" data-sid="158">
<strong>Name</strong> : Rahul Kumar
<br>
<strong>Total </strong> : 25
<br>
</p>
一个简单的测试会告诉你它返回相同的结果,你可能在你的代码中有其他的东西... – WalksAway
结果是一样的,请参阅https://jsfiddle.net/syjtqp30/。你的网页上是否有另一个ID为getMessage的元素? – Sam
非常适合我:http://output.jsbin.com/pesoki也许别的东西会覆盖这个值。 –