【问题标题】:Why is this JavaScript parameter getting lost?为什么这个 JavaScript 参数会丢失?
【发布时间】:2016-03-20 21:01:46
【问题描述】:

在这个函数中,值参数被向下传递以填写我的 URL。这非常有效。

function showResults(results) {
  var html = '';
  $.each(results, function(index,value) {
    html += '<li><a href="https://www.youtube.com/watch?v=' +     value.id.videoId + '" class="html5lightbox"><img src="' +     value.snippet.thumbnails.medium.url + '">' + value.snippet.title +    '(</a>More from <a href="https://www.youtube.com/channel/' +     value.snippet.channelId + '">' + value.snippet.channelTitle + '</a>)</li>';
  });
  $('#results').html(html);
}

在这个几乎相同的函数中,值参数失去了它的价值。我看不出怎么做。很难调试为什么会发生这种情况,因为无论我检查什么,console.log() 都只会返回“ReferenceError: $ is not defined”(它也在第一部分返回,效果很好)。

function showResults(results) {
  var html = '';
  $.each(results, function(index,value) {
    html += '<li><a href="#"><img src="' + value.snippet.thumbnails.medium.url +  '">' + value.snippet.title + '</a>) </li>';
  });
  $('#results').html(html);

  $('#results li a').click(function(){
    playVid($(this).attr(value.id.videoId));
  });
}

function playVid(vidID) {
  var embedVid = 'https://www.youtube.com/embed/'+vidID+'?autoplay=1';
  document.getElementById('player').src = embedVid;
}

在这里,我尝试将值参数(再次在 url 中)推送到 id="player" 的 iframe。 iframe 接收到无效的参数,视频将无法播放。同时,视频在第一个示例中播放。价值在哪里流失?

【问题讨论】:

    标签: javascript iframe youtube-api


    【解决方案1】:

    value 只存在于each 循环的范围内。因此,首先修复您的参考错误,然后我建议在第二个示例中进行以下更改:

    1) 在each 循环中使用videoId 值更新href,如第一个示例所示:

    <a href="https://www.youtube.com/watch?v=' + value.id.videoId + '">
    

    2) 然后使用该值启动播放器:

    $('#results li a').click(function(e) {
      e.preventDefault();
      playVid($(this).attr('href'));
    });
    

    【讨论】:

    • 我不明白。主播没有 value.id.videoId
    • 已更新。我的更改是否更有意义?
    • 为什么当我们通过 href 版本时它可以工作,但不是项目本身?我尝试将其作为变量、全局变量、本身传递,但没有骰子。为什么是href?这些锚标签有什么特别之处?
    • 正如我所说,value 不存在于each 之外,因此我们需要将该信息附加到循环中的元素。不一定非得是 href - 我可以使用数据属性,但 href 特别是在第一个示例中有意义。
    猜你喜欢
    • 1970-01-01
    • 2020-11-28
    • 2014-04-11
    • 2019-12-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-06-10
    • 1970-01-01
    相关资源
    最近更新 更多