我正在为我的网站制作一个简单的灯箱脚本,它围绕图像包装一个链接(A)。然后,链接URL应该是图像的SRC,但稍有操作。
图片网址可能如下所示:“pb028855_copy_147x110.jpg”我希望它删除“ 147x110”,从“复制”之后删除到“.jpg”之前。
我目前的脚本,将SRC从图像复制到链接是这样的:
$(function(){
$('img.withCaption').each(function(){
var $imgSrc = $(this).attr("src");
$(this).wrap('<a rel="lightBox" />');
$(this).parent().attr("href", ""+$imgSrc);
});
});
如何使用attr的部分?
提前谢谢你......
答案 0 :(得分:1)
如果您不确定数字的确切含义,可以将replace()
(docs)方法与正则表达式一起使用。
$(function(){
$('img.withCaption').each(function(){
var $imgSrc = this.src.replace(/_\d+x\d+\./,'.');
$(this).wrap('<a rel="lightBox" />')
.parent().attr("href", ""+$imgSrc);
});
});
所以这个:
pb028855_copy_147x110.jpg
将以此结束:
pb028855_copy.jpg
答案 1 :(得分:0)
它们有几种操纵字符串的方式,取决于你想要的东西,例如:
$imgSrc = $imgSrc.replace(/thumb/, 'big');
答案 2 :(得分:0)
attr方法只返回一个字符串,你可以像任何其他字符串一样操纵它。所以正则表达式替换会起作用。
$(function(){
$('img.withCaption').each(function(){
var imgSrc = $(this).attr("src")*.replace(/_copy_\d+x\d+\.jpg$/, "_copy.jpg")*;
$(this).wrap($('<a rel="lightBox" />').attr("href", imgSrc);
});
});
(我清理了包装部分。)