通过 jquery 有条件地将 class 添加到图像

Conditionally add class to image by jquery

此 JS 将下面所有图片的图片文件名 default.jpg 替换为 hqdefault.jpg。但是现在我正在尝试将 class 添加到图像,如果图像 src 通过扩展此 JS 在图像上具有 img.youtube.com link。

JS:

$('#selector img').attr('src',function(i,e){
    return $(this).attr('src').replace("default.jpg","hqdefault.jpg");
});

HTML:

<div id="selector">
    <img src="http://img.youtube.com/vi/qDc_5zpBj7s/default.jpg">
    <img src="http://img.youtube.com/vi/ss7EJ-PW2Uk/default.jpg">
    <img src="http://img.youtube.com/vi/ktd4_rCHTNI/default.jpg">
    <img src="http://img.youtube.com/vi/0GTXMEPDpps/default.jpg">
</div>

意思是,如果图片 src 有 Youtube 图片然后添加 class .video 到父图片。

尝试:

$('#selector img').each(function(i) {
    var self = $(this);
    var src = self.attr('src');
    if (src.match(/img.youtube.com/)) {
        self.attr('src', src.replace("/default.jpg","/hqdefault.jpg"));
        self.addClass('video');
    }
});

您可以在替换和添加视频前添加条件class。

$('#selector img').attr('src',function(i,e){
    if($(this).attr('src').search('img.youtube.com') > 0){
         $(this).addClass('video');
    }
    return $(this).attr('src').replace("default.jpg","hqdefault.jpg");
});