当我进行稍微不同的搜索时,我在另一个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方法中;反之亦然,等等)并让它们发挥最接近我一直在努力使它发挥作用。所以我想我差不多了。但并不完全。我错过了什么?在此先感谢您的帮助。 - 谢丽尔
答案 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);
}