2016-06-10 5 views
0

jquery data()을 사용하여 html 요소에 JSON을 저장하고 싶습니다. 그러나 내 요소는 실제로 HTML 문자열이며 아직 DOM에 없습니다.추가하기 전에 요소에 데이터 저장

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

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

I (각 함수 내에서)이 시도

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

하지만 el를 추가 할 때, 나는 [object][object] 내가 요소와 데이터를 연결하고 할 수있는 방법을 대신

를 추가 취득 추가 한 후에 검색 하시겠습니까?

뿐인 : 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

.. 설명에 대한 주석을 참조하십시오.

관련 문제