如何使用 jQuery 选择多个子元素?
这里完全是 jQuery 新手。使用此示例 HTML,我想使用 jQuery 将每个 span.caption 移动到前面的 A 标记内。
之前:
<ul class="gallery">
<li><a href="http://mysite.com/mural.jpg"><img src="mural.jpg"/></a>
<span class="caption">Nice mural</span>
</li>
<li><a href="http://mysite.com/car.jpg"><img src="car.jpg"/></a>
<span class="caption">New car</span>
</li>
</ul>
期望的结果:
<ul class="gallery">
<li><a href="http://mysite.com/mural.jpg"><img src="mural.jpg"/>
<span class="caption">Nice mural</span></a>
</li>
<li><a href="http://mysite.com/car.jpg"><img src="car.jpg"/>
<span class="caption">New car</span></a>
</li>
</ul>
我尝试了 $('ul.gallery li span.caption').appendTo($('ul.gallery li a img'));
但它选择了每个 span.caption 和将它们放置在第一个 img 标签内。
我认为我需要以某种方式使用父子选择器,但对此感到困惑。
谢谢!
Total jQuery newbie here. Using this example HTML, I want to use jQuery to move every span.caption inside the preceding A tag.
Before:
<ul class="gallery">
<li><a href="http://mysite.com/mural.jpg"><img src="mural.jpg"/></a>
<span class="caption">Nice mural</span>
</li>
<li><a href="http://mysite.com/car.jpg"><img src="car.jpg"/></a>
<span class="caption">New car</span>
</li>
</ul>
Desired result:
<ul class="gallery">
<li><a href="http://mysite.com/mural.jpg"><img src="mural.jpg"/>
<span class="caption">Nice mural</span></a>
</li>
<li><a href="http://mysite.com/car.jpg"><img src="car.jpg"/>
<span class="caption">New car</span></a>
</li>
</ul>
I tried $('ul.gallery li span.caption').appendTo($('ul.gallery li a img'));
but it selects every span.caption and positions them inside the first img tag.
I think I need to use a parent-child selector in some way, but confused about that.
Thanks!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
您可以使用
.each
方法迭代匹配的 < 集合code>.caption 元素,以及prev
来访问紧邻前面的元素(在您的情况下是a
):这是一个工作示例(使用 Firebug 检查源代码以查看结果)
You can use the
.each
method to iterate over the matched set of.caption
elements, andprev
to access the immediately preceding element (thea
in your case):Here's a working example (inspect the source with Firebug to see the result)
您可以稍微翻转一下逻辑并使用
append()
。jsFiddle。
我发现这更容易阅读自己,但是 YMMV。
You can flip your logic a bit and use
append()
.jsFiddle.
I find this easier to read myself, but YMMV.