Jquery can';youtube视频嵌套得很深

Jquery can';youtube视频嵌套得很深,jquery,iframe,youtube,Jquery,Iframe,Youtube,当模式关闭时,我似乎无法让YouTube视频停止播放。视频消失,但音频继续播放 我在许多其他问题上尝试过这些解决方案,但似乎都不管用。我想这可能是因为我的视频嵌套得很深,我还没能瞄准它。和/或因为iframe具有相同名称的元素id。(不要让我开始了。) 下面是DOM的简化视图: html head body <div id="popoverview"> <div id="popoveritem"> <iframe id="

当模式关闭时,我似乎无法让YouTube视频停止播放。视频消失,但音频继续播放

我在许多其他问题上尝试过这些解决方案,但似乎都不管用。我想这可能是因为我的视频嵌套得很深,我还没能瞄准它。和/或因为iframe具有相同名称的元素id。(不要让我开始了。)

下面是DOM的简化视图:

html
  head
  body
    <div id="popoverview">
      <div id="popoveritem">
        <iframe id="popoverframe">   <!-- this is our modal -->
          #document
            html
              head
              body
                <div id="popovercontainer">
                  <div id="popover_upc_video">
                    <div id="current_video">
                      <div id="player">
                        <iframe id="popoverframe">
                          #document  <!-- this is from youtube -->
                            html
                              head
                              body
                                <div id="player">
                                  <div id="playercontainer">
                                    <embed id="video-player-flash">  <!-- the video -->
我试过很多瞄准目标的方法,但都不管用

谢谢你的帮助。
Charlie Magee

您将jQuery对象设置为myPlayer,而不是 DOM节点

var myPlayer = $('#player > #video-player-flash')[0];
myPlayer.stopVideo();

请参阅此帖子:

您可能需要执行类似操作:
$(“#popoverframe”).contents().find(“#popoverframe”).contents().find(“#player#video player flash”).stop()
还有
$(“#player>#video player flash”)#视频播放器flash
#playercontainer
的孩子,则code>将不正确。它将是
$(“#player#video player flash”)否。不会改变任何事情。基于此的各种组合也不起作用。@ryan--这改变了错误消息,但没有解决问题。新错误:UncaughtTypeError:Cannot调用undefinedIt的方法'stopVideo',如果您在JSFIDLE上发布了一个演示该问题的最小实现,这将非常有用。您可能还需要使用console.log来查看您选择的元素是否是正确的嵌入元素。@ryan--这有一系列php包含和数据库搜索。把它简化成小提琴也无济于事。只要我通过第一个iframe,Console.log就会空出来。这就是我转向stackoverflow的原因之一。
var myPlayer = $('#player > #video-player-flash');
myPlayer.stopVideo();
var myPlayer = $('#player > #video-player-flash')[0];
myPlayer.stopVideo();