jQuery .find()返回未定义

时间:2018-09-22 11:27:06

标签: javascript jquery bootstrap-4

我在页面上使用了Bootstrap 4导航标签,其中一些具有YouTube播放器。因此,我创建了一个函数来检测单击某个选项卡时是否在前一个选项卡中包含播放器,然后停止播放视频。

$('.home-section').on('show.bs.tab', 'a[data-toggle="tab"]', function (event) {
  if (typeof event.relatedTarget  !== "undefined") {
    var tab = $(event.relatedTarget).attr('href');
    var player = $(tab).find($('#youtube')).get(0);
    pauseVideo(player);
  }
});

但是现在,我在窗格中有一个导航标签,并且此功能无法正常工作。 tab变量返回正确的ID,但是player变量始终返回未定义。

2 个答案:

答案 0 :(得分:4)

请更正

$('.home-section').on('show.bs.tab', 'a[data-toggle="tab"]', function (event) {
  if (typeof event.relatedTarget  !== "undefined") {
    var tab = $(event.relatedTarget).attr('href');
    var player = $(tab).find('#youtube').get(0);
    pauseVideo(player);
  }
});

答案 1 :(得分:1)

您的代码是正确的,仅在这一行:

var player = $(tab).find($('#youtube')).get(0);

您必须将selector#youtube)传递给find()函数,而不能使用jQuery元素:

var player = $(tab).find('#youtube').get(0);