使用新版jQuery v1.6并添加.prop()
方法。
使用.prop()
而不是.data()
是否存在内在差异?
我在文档中看到,在IE9之前的IE版本中,不删除属性可能会导致内存泄漏。但使用新的prop()
方法是否存在任何其他性能问题或其他问题?
网站上的语法:
var $para = $("p");
$para.prop("luggageCode", 1234);
以下内容:
var $para = $("p");
$para.data("luggageCode", 1234);
答案 0 :(得分:14)
我认为prop用于设置有效的HTML文档属性,而不是任意数据。我建议你继续使用luggageCode类型信息的数据。
答案 1 :(得分:6)
我认为它归结为DOM Node的属性与表示它的Javascript对象的属性之间的区别。
文档未指定 或 .data()
数据的存储方式,因此您将其视为相关jQuery的属性对象可能只是一个实现细节。 jQuery也可以在任何其他地方存储它。
相比之下,.prop()
当然明确涉及DOM节点的属性。
答案 2 :(得分:2)
我可能会犯这个错误,但似乎.data()
可以枚举,而.prop()
不能。
<强> Live Demo 强>
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);
}