在java脚本

时间:2018-05-08 17:13:02

标签: javascript jquery html javascript-objects

我有这种情况,我需要将一个java脚本对象分配给div属性。

var temp["name"]="first";

我使用Jquery将它分配给div标签属性。

div.attr('data-polygon',temp);
Object [ <div#image01> ]

当我尝试检索它时,它不会返回相同的..它被转换为String。

div.attr('data-polygon');
"[object Object]"

任何适当的选项/备用以保留属性中的对象?请让我知道

1 个答案:

答案 0 :(得分:2)

属性始终字符串。

以下是执行此操作的两个选项;因为你已经在使用jQuery,所以第一个可能是最好的:

jQuery的data

jQuery为此提供了data方法:

// Setting -- notice no "data-" prefix
div.data("polygon", temp);

// Retrieving
varName = div.data("polygon");

在幕后,传统上data为元素分配一个唯一的ID,并为元素管理一个数据缓存,与之分开。我认为在v3分支中他们已经更新它以实际存储元素上的数据(在Internet Explorer 8和更早版本中存在内存问题,这就是为什么jQuery之前没有这样做)。

将其指定为您自己的“expando”属性

如果您不需要支持Internet Explorer 8,则可以在实际DOM元素上创建属性。

// Setting
rawDiv.myUniquePrefixToAvoidConflicts_polygon = temp;

// Getting
varName = rawDiv.myUniquePrefixToAvoidConflicts_polygon;

请注意,为了避免与元素的许多预定义属性发生冲突,以及未来的尚未,您将需要使用可能唯一的前缀。