jQuery将特殊锚的href设置为下一个锚标记的href

问题描述 投票:1回答:2

我想找到链接子<a>并将其附加到父<a>。这是我的代码。这将返回相同的链接。

HTML代码

<div class="wrap">
  <ul class="main-ul">
   <li>
    <a class="child-link" href="link1"></a>
   </li>
  </ul>
  <a class="to-attach" href=""></a>   <<--to be link1
  <ul class="main-ul">
   <li>
    <a class="child-link" href="link2"></a>
   </li>
  </ul>
  <a class="to-attach" href=""></a>   <<--to be link2
  <ul class="main-ul">
   <li>
    <a class="child-link" href="link3"></a>
   </li>
  </ul>
  <a class="to-attach" href=""></a>   <<--to be link3
  .
  .
  .
  .
  .
</div>

jQuery代码

jQuery(".main-ul").append("<a class='to-attach'></a>");  
var link = jQuery(".child-link").attr("href");
jQuery(".to-attach").attr("href", link);

请帮我。谢谢。

javascript jquery href attr
2个回答
0
投票

您可以使用带回调函数的.attr()而不是.each()

$(".to-attach").attr("href", function(){
    return $(this).prev("ul").find(".child-link").attr("href");
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="wrap">
  <ul class="main-ul">
    <li>
      <a class="child-link" href="link1">child-link</a>
    </li>
  </ul>
  <a class="to-attach" href="">to-attach</a>   
  <ul class="main-ul">
    <li>
      <a class="child-link" href="link2">child-link</a>
    </li>
  </ul>
  <a class="to-attach" href="">to-attach</a>   
  <ul class="main-ul">
    <li>
      <a class="child-link" href="link3">child-link</a>
    </li>
  </ul>
  <a class="to-attach" href="">to-attach</a>   
</div>

1
投票

像这样?

$('.child-link').each(function() {
    var href = $(this).attr('href');

    $(this).closest('ul').next('a').attr('href', href);
});
© www.soinside.com 2019 - 2024. All rights reserved.