0

当我进行稍微不同的搜索时,我在另一个 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 中是包含视频标题、背景 .jpg 的路径和视频文件 (.vid_file) 的名称的子 div。所有这些都正常工作。但是我在提取每个 .vid_file 的唯一值时遇到问题(我的数据库中有 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 来显示视频——这正在工作)。上面的代码会发生什么,当您单击一个时,它们都会播放。我意识到这正是我要求它对这段代码做的事情,但是已经尝试了许多变体(将点击事件嵌套在 .each 方法中;反之亦然,等等)并让它们完全播放是我最接近的一直在使它工作。所以我想我快到了。但不完全是。我错过了什么?在此先感谢您的帮助。——谢丽尔

4

1 回答 1

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);
}
于 2012-07-18T09:59:39.510 回答