2017-06-17 1 views
0

私はデータ属性の内部で構築し、配列しようとしているが、私は取得しています[オブジェクト、オブジェクト]私は名前と値ATTR()でデータ属性の配列に名前と値を追加します。

<div class="wrapper"></div> 

$post_url = "http://example.ai"; 
$post_id = "750"; 
$(".wrapper").attr("data-history", { 
    id: $post_id, 
    url: $post_url 
}); 
を追加しようとすると、

私はまずデータ属性 "history"を作成しますが、それに[object、object]を追加します。その後、次のイベントの「ヒストリー」配列に別の名前/値を追加する必要があります。

+0

答えて

2

2つの問題は、一つは、あなたがクラス属性、あなたはJSONなどの属性を追加する必要が2のドット(。)を持っている(または、属性を使用する方法に応じて、.dataを使用)

べきではないということです
<div class="wrapper"></div> 

$post_url = "http://example.ai"; 
$post_id = "750"; 
$(".wrapper").attr("data-history", JSON.strinify({ 
    id: $post_id, 
    url: $post_url 
})); 

または

$post_url = "http://example.ai"; 
$post_id = "750"; 
$(".wrapper").data("history", { 
    id: $post_id, 
    url: $post_url 
}); 

EDIT:

だけ古いデータを取得し、それに

$post_url = "http://example.ai"; 
$post_id = "750"; 
var data = $(".wrapper").attr("data-history"); 
if (!data){ 
    data = []; 
} 
else{ 
    data = JSON.parse(data); 
} 
data.push({ 
    id: $post_id, 
    url: $post_url 
}); 
$(".wrapper").attr("data-history", JSON.strinify(data)); 

または

$post_url = "http://example.ai"; 
$post_id = "750"; 
var data = $(".wrapper").data("history"); 
if (!data){ 
    data = [{ 
     id: $post_id, 
     url: $post_url 
    }]; 
} 
else{ 
    data.push({ 
     id: $post_id, 
     url: $post_url 
    }); 
}  
$(".wrapper").data("history", data); 
+0

'JSON.encode'を新しいデータを追加し、新しいアイテムを追加するには? 'stringify'にする必要があります – charlietfl

+0

@charlietflありがとう、私はおそらく私の心の上にPHPを持っていた – Musa

+0

Yeah stringify works。しかし、追加したばかりのものに別の名前/値を追加するにはどうすればよいですか?私は各イベントで配列を構築しています。次は、追加したものを置き換えます。 – user300979

関連する問題