You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何创建含视频ID与标题的数组,实现带标题的视频缩略图循环生成?

问题与解决方案:生成带标题的YouTube视频缩略图

我想要实现一个循环,生成包含视频标题的视频缩略图。目前已配置好获取视频ID的函数,能通过循环生成缩略图和链接,但不知道如何编写数组或函数来包含标题。
当前代码如下:

var Ids = "id1,id2,id3";

if (typeof Ids === 'undefined') { Ids = ""; }
var vIds = Ids.split(",");

$.each(vIds, function(index,value) {

 $('.vrow').append('<button type="button" class="btn btn-link col-lg-2 col-md-2 col-sm-2 col-xs-6 vid vid'+index+'"><img src="https://img.youtube.com/vi/'+value+'/mqdefault.jpg" alt="" /><span><i class="fa fa-play"></i></span></button>');
 });

我曾尝试使用单独的标题数组,但导致循环异常且无法正确渲染YouTube ID。请问是否可以使用同一数组同时存储ID和标题?如果可以,如何映射标题值?这是否属于multidimensional array?
我尝试过的格式如下:

var Ids = "id1,title1,id2,title2";

解决方案

1. 推荐使用对象数组(结构化存储)

你说的「同一数组同时存ID和标题」完全可行,这属于对象数组(是结构化的多维数组实现),比你尝试的扁平字符串格式更清晰,不易出错。

直接定义包含视频ID和标题的对象数组,每个元素对应一个视频的完整信息:

// 结构化的视频数据数组,每个元素存ID和标题
var videos = [
  { id: "id1", title: "视频标题1" },
  { id: "id2", title: "视频标题2" },
  { id: "id3", title: "视频标题3" }
];

// 循环遍历数组,生成带标题的缩略图按钮
$.each(videos, function(index, video) {
  $('.vrow').append(`
    <button type="button" class="btn btn-link col-lg-2 col-md-2 col-sm-2 col-xs-6 vid vid${index}">
      <img src="https://img.youtube.com/vi/${video.id}/mqdefault.jpg" alt="${video.title}" />
      <span><i class="fa fa-play"></i></span>
      <div class="video-title">${video.title}</div> <!-- 新增标题展示元素 -->
    </button>
  `);
});

2. 如果必须使用字符串格式(不推荐)

若因限制只能用"id1,title1,id2,title2"这类字符串格式,可以通过拆分后按「每两个元素一组」的逻辑处理:

var videoStr = "id1,标题1,id2,标题2,id3,标题3";
if (typeof videoStr === 'undefined') { videoStr = ""; }
var videoArr = videoStr.split(",");

// 步长设为2,每次取一组ID和标题
for (var i = 0; i < videoArr.length; i += 2) {
  // 避免数组越界,确保ID和标题都存在
  if (videoArr[i] && videoArr[i+1]) {
    var videoId = videoArr[i];
    var videoTitle = videoArr[i+1];
    $('.vrow').append(`
      <button type="button" class="btn btn-link col-lg-2 col-md-2 col-sm-2 col-xs-6 vid vid${i/2}">
        <img src="https://img.youtube.com/vi/${videoId}/mqdefault.jpg" alt="${videoTitle}" />
        <span><i class="fa fa-play"></i></span>
        <div class="video-title">${videoTitle}</div>
      </button>
    `);
  }
}

关键说明

  • 对象数组的方式更易维护,后续新增视频属性(如时长、描述)时扩展成本更低。
  • 给图片添加alt属性为标题,可提升页面可访问性。
  • 可以给标题元素(.video-title)添加CSS样式,控制标题的显示位置、字体大小等。

内容的提问来源于stack exchange,提问作者flexdev

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.19 07:55:04