【发布时间】:2019-11-12 11:47:44
【问题描述】:
我有一个在页面上的所有<audio> 元素上运行的函数。它为每首歌曲创建一个新的媒体播放器。那工作正常。我正在使用 WordPress,所以我从页面模板中的数据库中提取歌曲标题和歌曲艺术家。我现在正在尝试使用 jQuery 获取该信息并将其插入到媒体播放器代码中的 <div> 中。我正在获取所有三首歌曲的第一首歌曲信息。这是带有结果的page。
我尝试使用 .each 遍历包含歌曲标题的 .song-title 类并使用 .text 抓取标题,但是当我这样做时,它会抓取所有三首歌曲标题并为每首歌曲输出。
每首歌曲在模板文件中都是这样设置的:
<div class="song">
<div class="song-title d-none">Song Title</div>
<div class="song-artist d-none">Artist</div>
<audio preload="auto" src="song.mp3"></audio>
</div>
Javascript 文件有一个在每个 <audio> 标记上运行的函数,该函数中包含以下代码:
//$('.song').each(function (index, value) {
$songTitle = $('.song-title').html();
$songArtist = $('.song-artist').html();
//});
$player.append('<div class = "song-info d-flex flex-column"><div class = "serif font-italic">' + $songTitle + '</div><div class = "small">' + $songArtist + '</div>');
如果需要,这里是full code。
我正在尝试让页面上的每个媒体播放器显示正确的歌曲标题和艺术家。
【问题讨论】:
-
$songTitle = $('.song-title', value).html();这会将搜索范围限制为当前的.song元素。你也可以这样做:$songTitle = $(value).find('.song-title').html(); -
@phuzi 我确实尝试根据您的评论进行更新,但它破坏了功能,这意味着音频播放器没有启动给我一个空的黑匣子。