我正在尝试将每个元素包装在锚定标记中,但是我不确定如何做到这一点。
我试图使用.each来运行一个函数,该函数使用.wrap来包装元素。
这就是我所做的:
<div class="product-icon-container">
<div class="product-icon product-share"><i class="fas fa-link"></i>Share</div>
<div class="product-icon product-heart"><i class="far fa-heart"></i>Save</div>
</div>
<input type="hidden" class="post-url" value="<?php the_permalink() ?>">`
var postUrl = $(".post-url").val()
$(".post-url").each(function(){
$(".product-share").wrap('a href="' + postUrl + '"></a>');
});
发生的事情是,在每个函数运行时,它包装了所有元素多次。
答案 0 :(得分:0)
当然,您为每个.post-url调用.wrap()
(例如10次),而没有指定要使用的元素(类返回一个集合,而不是单个元素)。
在jQuery中不那么强大,但应该是st。像这样:
$(".post-url").each(function(){
$(this).prev('.product-icon-container').find('.product-share').wrap('<a href="' + $(this).val() + '"></a>');
^^
});
在您的postUrl
中,它始终是相同的值,您不必为每个.post-url
元素都进行更改。