我的代码如下:
<div id="wrapper">
<img id="first" class="images" src="img/nike.jpg" />
<img id ="second" class = "images" src="img/golden.jpg" />
<img id = "third" class ="images" src ="img/a.jpg" />
<img id = "fourth" class="images" src="img/God__s_Canvas_by_Delacorr.jpg" />
</div>
我想动态地用<a name = n>
包装每个img。所以我的解决方案是这样做:
$(".images").wrap('<a></a>')
$("#wrapper a").each(function(n) {
$(this).attr('name', n);
})
是否可以将2个语句链接成1个语句?我知道jQuery特别优雅链接,所以我认为这绝对是可能的。我只是不知道该怎么做。
答案 0 :(得分:4)
这不完全相同,因为它不会在#wrapper之外包装.images,但它已经接近了。它在循环中创建并立即应用属性。
$('#wrapper img').each(function(n) {
$(this).wrap($('<a></a>').attr('name', n));
}
答案 1 :(得分:3)
这可能有用......
$(".images").wrap('<a></a>').parent().each(function(n) {$(this).attr('name', n);});
答案 2 :(得分:0)
我认为你不能,因为你引用了两个独立的对象集合。 $()将返回匹配项的数组。在第一次实现的情况下,您将使用一组“图像”拉动每个图像,并使用锚标记将它们包装起来。在第二个实现中,您将拉出“wrapper”div中的所有锚标记元素,并应用name属性。这是两个截然不同的集合,第二个集合甚至在你完成第一个陈述之后才可用。
现在,丹的实施可能会成功。不是你想要的链条,而是金钱似乎。