我想使用jquery data()
将JSON存储在html元素上。但是我的元素实际上是一个html字符串,并且还不像DOM一样。
$(".test").each(function() {
el += "<span>"+ 25 +"</span>";
});
$("body").append(el);
我试过这个(在每个函数中)
el += $("<span>"+ 25 +"</span>").data("test", {"name":"john"});
但是当我追加el
时,我会附加[object][object]
来代替
如何将数据与元素相关联,并且能够在附加后检索它?
答案 0 :(得分:2)
你做对了,但它是一个对象。当您打印或提醒对象时,它将始终显示为[Object]
。而不是打印对象而不是打印它的属性,如下所示:el.data("test").name
。
见:https://jsfiddle.net/6mhgwtk1/
<小时/> 根据您的示例代码,我已经使用工作代码更新了您的小提琴。请参阅注释以获取解释.. https://jsfiddle.net/6mhgwtk1/3/
var el;
$("div").each(function() {
// el is not a string here, (it's a jQuery object) so you can't concatentate it using +=
// instead you will have to append each one to the body separately
el = $("<span>"+ 25 +"</span>").data("test", {"name":"john"});
$("body").append(el);
});
$("body").find("span").each(function(){
var data = $(this).data("test");
console.log(data);
});
答案 1 :(得分:0)
对于检索,请尝试获取el的属性(因为它是一个对象)。