将 a link 属性赋予另一个 a 元素

Attribute a link to another a element

我有 HTML 这样的:

<div class="post">
  <p><a href="link1">Paralase1 mokew kweis</a></p>
  <p>Kwoie uisye jkui</p>
  <a class="pan">Readmore</a>
</div>

<div class="post">
  <p><a href="link2">Paralase2 mokew kweis</a></p>
  <p>Kwoie uisye jkui</p>
  <a class="pan">Readmore</a>
</div>

<div class="post">
  <p><a href="link3">Paralase3 mokew kweis</a></p>
  <p>Kwoie uisye jkui</p>
  <a class="pan">Readmore</a>
</div>

我想要元素 a 有 class 名称是 pan 将从 post 标题添加 link (link1, link2, link3) 但还要添加 post 标题的第一个词(Paralase1、Paralase2、Paralase3)以获得结果:

<div class="post">
  <p><a href="link1">Paralase1 mokew kweis</a></p>
  <p>Kwoie uisye jkui</p>
  <a class="pan" href="link1#Paralase1">Readmore</a>
</div>

<div class="post">
  <p><a href="link2">Paralase2 mokew kweis</a></p>
  <p>Kwoie uisye jkui</p>
  <a class="pan" href="link2#Paralase2">Readmore</a>
</div>

<div class="post">
  <p><a href="link3">Paralase3 mokew kweis</a></p>
  <p>Kwoie uisye jkui</p>
  <a class="pan" href="link3#Paralase3">Readmore</a>
</div>

所以你想让平底锅 link 和配对的 link 一样?

$('.pan').each(function(){
    var $this = $(this),
        $pairedLink = $this.parent().find('a').eq(0),
        desiredLink = $pairedLink.attr('href');

    desiredLink = desiredLink +'#'+ $pairedLink.text().split(' ')[0];

    $this.attr('href', desiredLink);
});

如果第一个 link 有 class,选择器会更容易。

包括 fiddle 参考:https://jsfiddle.net/bqz7zmhf/1/

可以绑定一个简单的点击处理程序来触发点击其他 link

$('.pan').click(function(){
    $(this).parent().find('a:first').click();
});

或者遍历所有帖子并添加 href。

$('a.pan').attr('href',function(){
    return $(this).parent().find('a:first').attr('href');
});