首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >.prop()与.data()

.prop()与.data()
EN

Stack Overflow用户
提问于 2011-05-04 01:56:57
回答 3查看 5K关注 0票数 11

随着jQuery v1.6的新版本和.prop()方法的添加。

.data()上使用.prop()有本质上的区别吗?

我在文档中看到,在IE9之前的IE版本中,不删除属性可能会导致内存泄漏。但是,使用新的prop()方法是否存在其他性能问题或其他问题?

来自网站的语法:

代码语言:javascript
复制
var $para = $("p");    
$para.prop("luggageCode", 1234);

在以下方面:

代码语言:javascript
复制
var $para = $("p");
$para.data("luggageCode", 1234);
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-05-04 02:01:11

我相信prop的目的是设置有效的HTML文档属性,而不是任意的数据。我建议你继续使用luggageCode类型信息的数据。

票数 16
EN

Stack Overflow用户

发布于 2011-05-21 22:56:58

我认为这归结于DOM Node的属性和表示它的Javascript对象的属性之间的区别。

文档没有指定如何或在哪里存储.data()数据,因此您将其视为相关jQuery对象的属性这一事实可能只是一个实现细节。jQuery也将被允许将其存储在任何其他地方。

相反,.prop()当然显式地与DOM节点的属性相关。

票数 7
EN

Stack Overflow用户

发布于 2011-05-04 02:25:05

我可能做错了,但似乎.data() 可以枚举,而.prop() 不能。

代码语言:javascript
复制
var $p = $("<p>");
    $p.data('luggagecode', '12345');
    $p.data('luggagecode_backup', '54321');

for (var key in $p.data()) { // generates two alerts
    var value = $p.data(key);
    alert('DATA | '+key+' = '+value);
}

var $p2 = $("<p>");
    $p2.prop('luggagecode', '12345');
    $p2.prop('luggagecode_backup', '54321');

for (var key in $p2.prop()) { // no alerts
    var value = $p2.prop(key);
    alert('PROP | '+key+' = '+value);
}
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5873631

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档