我试图使用类在多个div中追加HTML。但是我的代码在一个部分(HTML1)中复制HTML,而另一个部分是正确的。
HTML 1:
<div class="about-author">
<div class="author-text">
This is a author bio. <a href="https://example.com">example</a><a href="https://example.com">example</a>
</div>
</div>
HTML 2格式:
<div class="author-info">
<div class="author-bio">
This is a author bio. <a href="https://example.com">example</a><a href="https://example.com">example</a>
</div>
</div>
JavaScript程式码:
$(".about-author .author-text,.author-info .author-bio").each(function () {
var $this = $(this),
link = $this.find("a");
link.each(function () {
var $this = $(this),
cls = $this.text().trim(),
url = $this.attr("href");
$this.replaceWith('<li class="' + cls + '"><a href="' + url + '" title="' + cls + '" rel="noopener noreferrer" target="_blank"/></li>')
});
if (link.length) {
$this.parent().append('<ul class="author-links social social-color"></ul>');
}
$this.find("li").appendTo(".author-links")
});
我希望HTML 1和HTML 2中的输出相同
1条答案
按热度按时间sczxawaw1#
您可以直接循环链接。使用这种方式无需检查长度,因为如果没有在divs中找到
<a>
,循环将无法工作我相信有一些方法可以做到这一点,但这就是它来在我的脑海里现在..检查下一个代码
第一个
AND通过使用
.next()
和.after()
可以在最近的div之后显示ul第一个