我想在关闭锚标签后立即将div移动到现场。我得到的只是图像类名。如何找到包装图像的结束锚标记?
<a href="#"><img class="cat-image" src="http://placekitten.com/200/300" title="Funky roots" /></a>
在JS Fiddle上我有一个例子,我在列表中迭代寻找具有某个类名的图像。如果该图像存在,我想将'.moveMe'
移动到结束锚标记之后。
不幸的是我无法修改html。我无法在锚点或图像标签中添加id或类,也不能将整个事物包装在div中。
HTML:
<ul class='testList'>
<li class="listItem-0">
<div class="moveMe"></div> <pre>
<div class="wrapper">
<a href="#"><img class="cat-image" src="http://placekitten.com/200/300" title="Funky roots" /></a><!-- moveMe div here -->
</div>
<div class="summary"></div>
</pre>
</li>
<li class="listItem-1">
<div class="moveMe"></div> <pre>
<div class="wrapper">
<div></div>
</div>
<div class="summary"></div>
</pre>
</li>
<li class="listItem-2">
<div class="moveMe"></div> <pre>
<div class="wrapper">
<a href="#"><img class="cat-image" src="http://placekitten.com/300/400" title="bigger cat pic" /></a>
</div>
<div class="summary"></div>
</pre>
</li>
</ul>
JS:
var listItems = $(".testList li");
listItems.each(function (idx, li) {
if ($(li).find('.cat-image').length) {
console.log('listItemContent image==>', $('pre').find('.cat-image'));
/*$(li).find('???? </a> ????').append($(li).find('.moveMe'));*/
}
console.log($('.testList').html());
});
答案 0 :(得分:4)
尝试在此上下文中使用.after()
,
var listItems = $(".testList li");
var cache = null;
listItems.each(function (idx, li) {
cache = $(li).find('.cat-image');
if (cache.length) {
cache.parent().after($(li).find('.moveMe'));
}
});
答案 1 :(得分:0)
您可以按照以下方式执行此操作:
var listItems = $(".testList li");
listItems.each(function (idx, li) {
var jli = $(li);
jli.find(".cat-image")
.closest("a")
.after(jli.find(".moveMe"));
});
如果您愿意,可以缩减为一行:
var listItems = $(".testList li");
listItems.each(function (idx, li) {
$(li).find(".cat-image").closest("a").after($(li).find(".moveMe"));
});