我从以下JS中的标题中得到错误:
$('.videoMedia .youtubeLink').each(function(i) {
// Defining the iframe for each iteration
var iframe = $(this).parents('li').find('.portfolio_det iframe');
// Cutting the src from the iframe in pieces
var begin = 'http://www.youtube.com/embed/'.length;
var end = iframe[0].src.length-'?fs=1&feature=oembed'.length;
未捕获的TypeError:无法读取未定义的属性'src'
// Substracting the pieces
var videolink = iframe[0].src.substring(begin,end);
// Replacing the link with the leftovers
$(this).attr('href', 'http://www.youtube.com/watch?v=' + videolink);
// Removing the iframe
$(iframe).remove();
});
为什么它认为它未定义的任何想法?由于iframe是在函数之上定义的。建议::)
修改
“动作”中的此脚本示例(不一定要像这样调用,因为没有任何动作正在进行):http://sqps.nl/bdare/?page_id=279
目前它仅适用于右/底部的最后一个元素(使用bdare / youtube img)
修改2
奇怪的是,它曾经在(在使用xampp的localhost上)工作
编辑3 - 问题修复
特此感谢参加讨论的各位:) 我找到了解决方案..我的代码完全没有问题:) 来自wordpress帖子的输入激发了脚本正常运行,更改帖子内容修复问题:)
干杯:)
答案 0 :(得分:1)
这一行:
var iframe = $(this).parents('li').find('.portfolio_det iframe');
找不到任何元素。这意味着iframe[0]
未定义而不是对象,因此任何属性访问尝试都将导致您获得的错误。
验证您的标记是否正确。
答案 1 :(得分:-1)
尝试改为
var end = iframe.get(0).src.length-'?fs=1&feature=oembed'.length;
iframe
是对jQuery对象的引用,因此它是iframe[0]
。这就是您收到错误的原因:src
不是jQuery对象的有效属性