insertAfter 在循环内
我有一些由 CMS 生成的代码:
<div class="block">
<a class="link" href="#">Link</a>
<h4>Header here</h4>
<div class="text">Some text here</div>
</div>
并且我需要将链接移到文本 div 之后。我已经尝试过这个:
$(document).ready(function() {
$('.block').each(function() {
$('.block a.link').insertAfter('.block div.text');
});
});
但这只会导致链接重复大约 10 次(循环次数。
我尝试使用 $(this) 但我不太明白如何编写正确的语法来将 a.link 附加到其中函数...像这样:
$(this).a.link.insertAfter($(this).div.text);
I have some code generated by a CMS:
<div class="block">
<a class="link" href="#">Link</a>
<h4>Header here</h4>
<div class="text">Some text here</div>
</div>
and I need to move the link to after the text div. I have tried this:
$(document).ready(function() {
$('.block').each(function() {
$('.block a.link').insertAfter('.block div.text');
});
});
but this only results in links being repeated about 10 times (the number of times looped.
I tried using $(this) but I don't quite understand how to write the correct syntax to append the a.link within the function... like this:
$(this).a.link.insertAfter($(this).div.text);
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
像这样的东西应该可以工作,使用
siblings
和after
:这表示“对于每个匹配的元素,找到与
.text
匹配的元素并插入其后的原始元素”。或者,您可以这样做:
这假定您要将元素放在
div.block
的末尾。Something like this should work, using
siblings
andafter
:That says "for each element matched, find the element that matches
.text
and insert the original element after it".Alternatively, you could do this:
This presumes that you want to put the element at the end of the
div.block
.你可以这样做(如果你想在带有类文本的div之后):
或者(如果你想在带有类块的div之后)
You could do (if you want it after the div with class text):
or (if you want it after the div with class block)
试试这个:
Try this:
试试这个
Try this