作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我希望尝试从链接中的 YouTube 网址中提取 ID,并使用该 ID 将视频的缩略图作为背景图像添加到链接中。
这是起点标记:
<a class="video__link" href="https://www.youtube.com/watch?v=TDfVHTtcl7g">
<span class="icon icon--play"><span class="visually-hidden">Play video on YouTube</span></span>
</a>
我追求的最终结果是:
<a class="video__link" href="https://www.youtube.com/watch?v=TDfVHTtcl7g" style="background-image: url('http://img.youtube.com/vi/TDfVHTtcl7g/0.jpg');">
<span class="icon icon--play"><span class="visually-hidden">Play video on YouTube</span></span>
</a>
页面上将有多个指向 YouTube 视频的链接(数量未知),所有链接都具有相同的标记,因此我猜 jQuery 将需要使用 $(this)
。
我还假设需要使用正则表达式从 YouTube 网址的所有变体中提取 ID。正如这里提到的:jQuery Youtube URL Validation with regex .
我只是不知道如何定位页面上的每个视频链接,使用正则表达式从链接的 href 中提取 YouTube ID,然后将该 ID 添加到每个链接的背景图像 URL。
任何帮助或代码建议将不胜感激,谢谢!
最佳答案
你可以这样做:
$(".video__link").each(function() {
var url = $(this).attr("href")
var regExp = /^.*(youtu\.be\/|v\/|u\/\w\/|embed\/|watch\?v=|\&v=)([^#\&\?]*).*/;
var match = url.match(regExp);
if (match && match[2].length == 11) {
var id = match[2];
var path = 'http://img.youtube.com/vi/'+id+'/0.jpg';
$(this).css('background-image', 'url(' + path + ')');
}
});
关于javascript - 从链接获取 YouTube ID 并将其缩略图添加为背景图像(使用 jQuery),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37139119/
我是一名优秀的程序员,十分优秀!