2016-06-10 39 views
0

我想使用jquery data()在html元素上存儲JSON。然而,我的元素實際上是一個html字符串,並不像DOM那樣。在追加元素之前存儲數據

$(".test").each(function() { 
    el += "<span>"+ 25 +"</span>"; 
}); 

$("body").append(el); 

我曾經嘗試這樣做(每個函數內)

el += $("<span>"+ 25 +"</span>").data("test", {"name":"john"}); 

但是,當我追加el,我得到[object][object]附加,而不是

我怎樣才能將數據與元素相關聯,並能在附加後檢索它?

FIDDLE:https://jsfiddle.net/6mhgwtk1/1/

+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); 
}); 
+0

我不想使用它的屬性。我想追加span元素,然後在我的腳本的其他地方使用json數據 – guub

+1

@guub如果您不明白我的答案,您將不得不發佈使用該對象的代碼,以便我可以提供更相關的示例。該對象在'el.data(「test」)'中。你已經得到了,問題在於你如何使用它,而你沒有發佈該代碼。如果你需要進一步的幫助,你將不得不發佈你的代碼。 –

+0

我更新了帖子並添加了小提琴:https://jsfiddle.net/6mhgwtk1/1/ – guub

0

對於檢索,嘗試EL的獲得屬性(因爲它是一個對象)。