我有这种情况,我需要将一个java脚本对象分配给div属性。
var temp["name"]="first";
我使用Jquery将它分配给div标签属性。
div.attr('data-polygon',temp);
Object [ <div#image01> ]
当我尝试检索它时,它不会返回相同的..它被转换为String。
div.attr('data-polygon');
"[object Object]"
任何适当的选项/备用以保留属性中的对象?请让我知道
答案 0 :(得分:2)
属性始终字符串。
以下是执行此操作的两个选项;因为你已经在使用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之前没有这样做)。
如果您不需要支持Internet Explorer 8,则可以在实际DOM元素上创建属性。
// Setting
rawDiv.myUniquePrefixToAvoidConflicts_polygon = temp;
// Getting
varName = rawDiv.myUniquePrefixToAvoidConflicts_polygon;
请注意,为了避免与元素的许多预定义属性发生冲突,以及未来的尚未,您将需要使用可能唯一的前缀。