【问题标题】:Removing YouTube embed from my page从我的页面中删除 YouTube 嵌入
【发布时间】:2015-10-25 19:13:04
【问题描述】:

我有一种情况,我将 Youtube 视频加载到容器中。本质上,当用户不关注他们在 YouTube URL 中输入的内容时,它会被包裹在一个 iframe 中,并嵌入到指定的容器中。

我的这部分代码似乎运行良好。问题出在用户从输入中删除其 URL 时。发生这种情况时,我需要容器恢复到原始状态。

我认为下面的代码不起作用。 .empty().remove() 似乎都没有删除 iframe 并将原始内容放回原处。

如果有人能够解决我的问题,将不胜感激。

<!-- input html -->
<div class="text-group">
    <input class="text-input js-thumb" type="text" placeholder="URL"  required>
</div>

<!-- container html -->
<div class="content-img-wrapper">
    <div class="content-img-placeholder"></div>
</div>


// jQuery
$(document).ready(function() {
    var thumbFetch = $('.js-thumb');
    thumbFetch.blur(function() {
        if(thumbFetch.length >= 1) {
            $('.content-img-wrapper').html('<iframe width="100%" height="100%" src="http://www.youtube.com/embed/' + thumbFetch.val() + '?rel=0&controls=0&showinfo=0" frameborder="0" allowfullscreen></iframe>');
        } else {
            $('.content-img-wrapper').empty();
            $('.content-img-wrapper').html('<div class="content-img-placeholder"></div>');
        }
    });
});

【问题讨论】:

  • var thumbFetch = $('.js-thumb'); 是输入标签吗?
  • 道歉。我现在将添加输入 html
  • thumbFetch.length &gt;= 1 - 你在这里检查了错误的东西,jQuery 对象 $('.js-thumb') 的长度 - 即 1,因为你在文档中有那个输入字段。您实际上想在模糊事件发生时检查该输入字段的 thumbFetch.val() !== ''

标签: jquery html iframe youtube


【解决方案1】:

thumbFetch.length 告诉你有多少 dom 元素匹配 jQuery 选择器。相反,请尝试 thumbFetch.val().length 输入值的长度。

你可能想要的是:

var thumbFetch = $('.js-thumb');
thumbFetch.change(function() {
    if(thumbFetch.val() !== '') {
        $('.content-img-wrapper').html('<iframe width="100%" height="100%" src="http://www.youtube.com/embed/' + thumbFetch.val() + '?rel=0&controls=0&showinfo=0" frameborder="0" allowfullscreen></iframe>');
    } else {
        $('.content-img-wrapper').html('<div class="content-img-placeholder"></div>');
    }
});

【讨论】:

  • 不是&gt;= 1,而是&gt; 0,或.val() !== ''
  • @CBroe 为什么不是&gt;= 1 而不是&gt; 0.val() !==''
  • 有一种检查空输入元素的标准方法。 val().length &gt;= 1.val().length &gt; 0.val() !== '' 更难理解。不过它们都可以工作。
  • 你们说的都对,我不知道我为什么说“不”,应该说“在我看来更具可读性”之类的。像这样。
  • 感谢@CBroe 的澄清
猜你喜欢
  • 1970-01-01
  • 2020-04-22
  • 1970-01-01
  • 2018-04-15
  • 2012-05-07
  • 2015-10-03
  • 2011-07-23
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多