我爱编程

data 、attr和prop 取值的区别

2018-03-28  本文已影响0人  YoungEvita
<body>
  <div id="num" data-num="123">click here</div>
</body>
1. data 和 attr
$('#num').on('click', function(event) {
  var dataNum = $(this).data('num');
  var dataAttr = $(this).attr('data-num');
  console.log(typeof dataNum); // number
  console.log(typeof dataAttr); // string
});

以上代码输出:
number
string

2. attr 和 prop
$('#num').on('click', function(event) {
  console.log($(this).attr('data-num'), $(this).prop('data-num')); // 123 undefined
  console.log($(this).attr('id'), $(this).prop('id'));// num num
});

以上代码输出:
123 undefined
num num

3. data 的缓存
$('#num').on('click', function(event) {
  // 先输出未修改之前的值
  console.log($(this).data('num')); // 123
  console.log($(this).attr('data-num')); // 123
  // 修改data-num 属性的值
  $(this).data('num', 456);
  // 再次取data-num 值输出
  console.log($(this).data('num')); // 456
  console.log($(this).attr('data-num')); // 123
});
上一篇 下一篇

猜你喜欢

热点阅读