jQuery 按 Class 名称获取 ID
jQuery Get IDs by Class Name
我有一个包含大约 15-20 个 YouTube 视频的页面,我想动态更新 img src 以指向 YouTube 托管的缩略图。从逻辑的角度来看,我想找到每个 DIV 具有 class 的“视频”,获取该 class 的 ID 并使用动态插入的值更新图像源,例如, http://img.youtube.com/vi/DbyNtAQyGs/0.jpg 在第一个例子中。所有 ID 都是唯一的,因为它们是 YouTube 视频 ID,并且每个“视频”下只有一个 img 标签 class。
此代码将 运行 加载页面,因此必须非常快以确保在浏览器传递 DOM 中的每个 img 标记之前设置值。希望我能得到其中一种,而不是 vars 和多行。
<div id="DbyNtAQyGs" class="videos">
<a href="javascript: void(0);" onclick="loadPlayer($(this).closest('div').attr('id'));)"><img src="" width="212" height="124" /></a>
</div>
<div id="Fh198gysGH" class="videos">
<a href="javascript: void(0);" onclick="loadPlayer($(this).closest('div').attr('id'));)"><img src="" width="212" height="124" /></a>
</div>
当前代码
$('.videos img').attr('src', 'http://img.youtube.com/vi/' + $(this).closest('div').attr('id')); + '/0.jpg');
您可以使用:
$('.videos img').attr('src', function() { return 'http://img.youtube.com/vi/' + $(this).closest('div').attr('id') + '/0.jpg'; })
遍历 .videos 元素:
$('.videos').each(function(){
var $this = $(this),
_id = $this.attr('id'); // Capture the ID
// Construct the img src
$this.find('img').attr('src', 'http://img.youtube.com/vi/' + _id + '/0.jpg');
});
奖励:在锚点的点击事件中链接:
$this.find('a').click(function(e){
e.preventDefault();
loadPlayer(_id);
}).find('img').attr('src', 'http://img.youtube.com/vi/' + _id + '/0.jpg');
因此您可以简化标记:
<div id="DbyNtAQyGs" class="videos">
<a href="#"><img src="" width="212" height="124" /></a>
</div>
我有一个包含大约 15-20 个 YouTube 视频的页面,我想动态更新 img src 以指向 YouTube 托管的缩略图。从逻辑的角度来看,我想找到每个 DIV 具有 class 的“视频”,获取该 class 的 ID 并使用动态插入的值更新图像源,例如, http://img.youtube.com/vi/DbyNtAQyGs/0.jpg 在第一个例子中。所有 ID 都是唯一的,因为它们是 YouTube 视频 ID,并且每个“视频”下只有一个 img 标签 class。
此代码将 运行 加载页面,因此必须非常快以确保在浏览器传递 DOM 中的每个 img 标记之前设置值。希望我能得到其中一种,而不是 vars 和多行。
<div id="DbyNtAQyGs" class="videos">
<a href="javascript: void(0);" onclick="loadPlayer($(this).closest('div').attr('id'));)"><img src="" width="212" height="124" /></a>
</div>
<div id="Fh198gysGH" class="videos">
<a href="javascript: void(0);" onclick="loadPlayer($(this).closest('div').attr('id'));)"><img src="" width="212" height="124" /></a>
</div>
当前代码
$('.videos img').attr('src', 'http://img.youtube.com/vi/' + $(this).closest('div').attr('id')); + '/0.jpg');
您可以使用:
$('.videos img').attr('src', function() { return 'http://img.youtube.com/vi/' + $(this).closest('div').attr('id') + '/0.jpg'; })
遍历 .videos 元素:
$('.videos').each(function(){
var $this = $(this),
_id = $this.attr('id'); // Capture the ID
// Construct the img src
$this.find('img').attr('src', 'http://img.youtube.com/vi/' + _id + '/0.jpg');
});
奖励:在锚点的点击事件中链接:
$this.find('a').click(function(e){
e.preventDefault();
loadPlayer(_id);
}).find('img').attr('src', 'http://img.youtube.com/vi/' + _id + '/0.jpg');
因此您可以简化标记:
<div id="DbyNtAQyGs" class="videos">
<a href="#"><img src="" width="212" height="124" /></a>
</div>