使用jquery从动态div中提取变量的值

时间:2012-07-18 09:52:39

标签: jquery xml html5-video

当我进行稍微不同的搜索时,我在另一个Stack Overflow Q中找到了答案。代码的关键是:

var videoFile = $(this).find('.vid_file').text();

使用'this'引用每个videoLink div,然后它在videoLink中找到vid_file div,并读取文本。希望这会有助于其他人!

我正在创建一个包含HTML,XML和JQuery的动态视频库。在读取XML文件后,我输出一个HTML字符串,为每个视频(.videoLink)创建一个动态div。在该div中包含保存视频标题的子div,背景.jpg的路径以及视频文件的名称(.vid_file)。所有这一切都正常。但我在解析每个.vid_file的唯一值时遇到问题(我的dbase中有6个测试视频)。这是我正在使用的代码:

$('.videoLink').click(function(e){
    e.preventDefault();
    $('vid_file').each(function (){
    var videoFile = $(this).text();

    var videoCode = '<video controls autoplay autobuffer>' +
        '<source src="video/'+videoFile+'.ogv" type="video/ogg" />' +
        '<source src="video/'+videoFile+'.mp4" type="video/mp4" />' +
        '</video>';

    $('#videoPlayer').html(videoCode);

等。 (我正在使用fancybox来显示视频 - 这是有效的)。上面的代码会发生什么,当你点击一个代码时,它们都会播放。我意识到这正是我要求它使用这个代码,但尝试了很多变化(将click事件嵌套在.each方法中;反之亦然,等等)并让它们发挥最接近我一直在努力使它发挥作用。所以我想我差不多了。但并不完全。我错过了什么?在此先感谢您的帮助。 - 谢丽尔

1 个答案:

答案 0 :(得分:1)

似乎你错过了选择器中的点。请使用以下内容。

$('.vid_file').each(function (){
    var videoFile = $(this).text();

    var videoCode = '<video controls autoplay autobuffer>' +
        '<source src="video/'+videoFile+'.ogv" type="video/ogg" />' +
        '<source src="video/'+videoFile+'.mp4" type="video/mp4" />' +
        '</video>';

    $('#videoPlayer').html(videoCode);
}