2016-04-20 75 views
0

我想要從一個div獲取數據並使用data屬性將數據插入到新的div。插入JSON到HTML數據屬性

//get data from old div as JSON 
var data = JSON.parse(document.getElementById('video_data').getAttribute('data-video')); 

這是我從哪裏得到數據的div。 enter image description here

//insert the data to the new div 
document.getElementById('i').insertAdjacentHTML('afterbegin', '<div class="video_wrap update" video_name="' + data.video_name + '" data-video="' + JSON.stringify(data) + '"><div class="content"><div class="title_wrap infinite_wrap"><div class="quality uninfinite">∞</div></div><div class="img_wrap"><img src="https://i.ytimg.com/vi/' + data.yt_id + '/hqdefault.jpg"></div><div class="title_wrap"><div class="title">' + data.title + '</div></div></div></div>'); 

這是我插入新的div後得到的。 enter image description here

你可以看到,即使顏色不正確

問題是什麼?

回答

0
document.getElementById('i').insertAdjacentHTML('afterbegin', '<div class="video_wrap update" video_name="' + data.video_name + '"><div class="content"><div class="title_wrap infinite_wrap"><div class="quality uninfinite">&infin;</div></div><div class="img_wrap"><img src="https://i.ytimg.com/vi/' + data.yt_id + '/hqdefault.jpg"></div><div class="title_wrap"><div class="title">' + data.title + '</div></div></div></div>'); 
document.getElementById('i').firstChild.setAttribute('data-video', JSON.stringify(data)); 

這種固定誤差新的瀏覽器。

2

Json stringify只是把它變成一個字符串。您需要轉義雙引號得到的字符串中,這樣渲染

我大概也是全球範圍內取代「與」如果你相信有你沒有單引號的數據時,它會起到很好嗎?

哦,在事後如果構造格在JavaScript中,你只支持你應該能夠做到

El.dataset.video = your json string 
+0

我這樣做了:'data.replace(/「/ g,'\\」')'並且沒有結果。 –

+0

你需要這樣做的結果json.stringify(數據) – karina

+0

我做了'var a = JSON.stringify(data); var b = a.replace(/「/ g,'\\」');'並且比我插入b。 –