当我进行稍微不同的搜索时,我在另一个 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 方法中;反之亦然,等等)并让它们完全播放是我最接近的一直在使它工作。所以我想我快到了。但不完全是。我错过了什么?在此先感谢您的帮助。——谢丽尔