attr和数据的结果不同

时间:2016-07-26 08:32:39

标签: javascript jquery

<p id="getMessage" data-sid="158">
  <strong>Name</strong> : Rahul Kumar<br>
  <strong>Total </strong> : 25<br>
</p>

这是我使用jQuery动态生成的HTML

现在这是稳定的并且修复

我在Consol中执行了几个命令并找到了这些结果

$('#getMessage').attr('data-sid');
"158"

这是预期的。

但是当我执行这个

$('#getMessage').data('sid');
160

它显示160,它应该是158对吗?

我使用$('#getMessage').attr('data-sid', result.studentDetails.SID);进行设置。

3 个答案:

答案 0 :(得分:3)

.attr会读取实际属性

.data将读取该数据项的当前值。如果您的代码已更改了将成为当前值的值(即$('#getMessage').data('sid',160))。

答案 1 :(得分:0)

data()函数将数据存储到特定元素

  

存储与指定元素关联的任意数据和/或返回已设置的值。

jQuery.data($('#element'), data);

另一方面,attr()从元素中获取或设置属性。

$('div').attr('data-test', 'test');

<div data-test="test"></div>

答案 2 :(得分:0)

按要求提供工作示例...,请注意我可以在不更改实际属性的情况下更改数据属性的值

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>