使用jQuery,我想在可点击的网站上的特定路径下制作所有图片,并使用Fancybox显示一个大图片,这是一个lighbox jQuery的变体插件。
我的小图片位于“images / products / small”下,“images / products / big”下的大图片,图片名称始终相同< / p>
该页面显示的图像包含以下代码:
<img src="images/products/small/hat.jpg" alt="Nice hat">
我想要的是一些jQuery脚本,使其成为:
<a href="images/products/big/hat.jpg" class="fancybox"><img src="images/products/small/hat.jpg" alt="Nice hat"></a>
也许可以跳过链接标记上设置类的部分,只需使用 $(elm).fancybox();
直接在元素上激活fancybox我正在四处寻找它看起来像jQuery函数“attr”和“wrap”可能会有用,但是我目前有限的jQuery技能我可以真的把点连接起来。
答案 0 :(得分:2)
您想查找所有图片,然后如您所料,如果您真的想要修改结构,可以使用wrap
:
$('some_parent_selector img[src*=/small]').wrap(function() {
return "<a href='" + this.src.replace("/small", "/large") + "' class='fancybox'/>";
});
Live example(一旦你点击按钮,元素就会被包裹;这可能不会在视觉上立即明显,但是如果你使用Firebug或Dev Tools甚至只是点击它们......)。
你使用attr
,btw正确的方向,但是src
属性是HTMLImageElement DOM对象上反映为属性的属性之一,所以你不需要使用attr
。