如何使用jquery将JSON对象添加到元素的属性中

时间:2015-10-13 03:04:08

标签: jquery

我正在尝试差不多一个小时来修复使用此代码将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

2 个答案:

答案 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);