我正在尝试差不多一个小时来修复使用此代码将JSON对象添加到元素属性中以播放视频的问题:
var json = JSON.stringify({"techOrder": ["youtube"], "src": "https://www.youtube.com/watch?v=LKRaXPYSzKY" });
$('#popup-companyPitch').html('<video id="vid1" src="" class="video-js vjs-default-skin" controls preload="auto" width="580" height="360" data-setup="'+json+'"></video>');
我在我的网站的另一部分有同样的事情,我使用php从数据库中获取数据,它完全正常工作:
<video id="vid1" src="" class="video-js vjs-default-skin" controls preload="auto" width="580" height="360" data-setup='{ "techOrder": ["youtube"], "src": "<?php echo $obj->video_url;?>" }'></video>
我不知道为什么我无法使用jquery让它适用于第一种情况。
日Thnx
答案 0 :(得分:0)
您可以使用以下代码。最好使用data()
函数
var json = JSON.stringify({"techOrder": ["youtube"], "src": "https://www.youtube.com/watch?v=LKRaXPYSzKY" });
video_element= $('<video id="vid1" src="" class="video-js vjs-default-skin" controls preload="auto" width="580" height="360"></video>');
vide_element.attr('data-setup', json); //if you want visible attribute you can use vide_element.attr('data-setup', json)
$('#popup-companyPitch').append(video_element);
答案 1 :(得分:0)
问题是如何逃避属性中的引号
如果您想将其设置为属性本身
var json = JSON.stringify({"techOrder": ["youtube"], "src": "https://www.youtube.com/watch?v=LKRaXPYSzKY" });
var $el = $('<video id="vid1" src="" class="video-js vjs-default-skin" controls preload="auto" width="580" height="360"></video>').attr('data-setup', json);
$('#popup-companyPitch').html($el);
如果您想将其设置为数据属性
var json = {"techOrder": ["youtube"], "src": "https://www.youtube.com/watch?v=LKRaXPYSzKY" };
var $el = $('<video id="vid1" src="" class="video-js vjs-default-skin" controls preload="auto" width="580" height="360"></video>').data('setup', json);
$('#popup-companyPitch').html($el);