Javascript 将JSON插入HTML数据属性
我想从一个div中获取数据,并使用Javascript 将JSON插入HTML数据属性,javascript,json,html,Javascript,Json,Html,我想从一个div中获取数据,并使用data属性将数据插入一个新div //get data from old div as JSON var data = JSON.parse(document.getElementById('video_data').getAttribute('data-video')); 这是我从中获取数据的div。 //将数据插入新的div document.getElementById('i').insertAdjacentHTML('afterbegin','∞'
data
属性将数据插入一个新div
//get data from old div as JSON
var data = JSON.parse(document.getElementById('video_data').getAttribute('data-video'));
这是我从中获取数据的div。
//将数据插入新的div
document.getElementById('i').insertAdjacentHTML('afterbegin','∞' + data.title+“”);
这是插入新div后得到的结果。
你可以看到连颜色都不正确
有什么问题吗?Json stringify只是将其转换为字符串。您需要对结果字符串中的双引号进行转义,以便在渲染时播放效果良好 如果您确信您的数据中没有单引号,我可能还可以在全球范围内将“替换为” 哦,如果您在JavaScript中构建div,并且只支持更新的浏览器,那么您应该能够做到这一点
El.dataset.video = your json string
Json stringify只是将其转换为一个字符串。您需要转义结果字符串中的双引号,以便在渲染时播放效果良好 如果您确信您的数据中没有单引号,我可能还可以在全球范围内将“替换为” 哦,如果您在JavaScript中构建div,并且只支持更新的浏览器,那么您应该能够做到这一点
El.dataset.video = your json string
document.getElementById('i').insertAdjacentHTML('afterbegin','∞'+data.title+'');
document.getElementById('i').firstChild.setAttribute('data-video',JSON.stringify(data));
这修复了错误。document.getElementById('i').insertAdjacentHTML('afterbegin','∞'+data.title+'');
document.getElementById('i').firstChild.setAttribute('data-video',JSON.stringify(data));
这修复了错误。我这样做:
data.replace(/“/g,\\\”)
并且没有结果。你需要对json的结果这样做。stringify(数据)我这样做var a=json.stringify(数据);变量b=a.replace(/“/g,\\”)代码>然后我插入了b.Hrm。那么用单报价代替?谷歌搜索显示HTML不把\作为转义字符。我这样做了:data.replace(/“/g,“\\”)
没有结果。你需要对json.stringify(数据)的结果这样做。我这样做了var A=json.stringify(数据);变量b=a.replace(/“/g,\\”)代码>然后我插入了b.Hrm。那么用单报价代替?谷歌搜索显示HTML不把\作为转义字符。
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">∞</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));