如何使用jquery将下一个元素的id设置为链接的href属性?

时间:2016-09-26 11:52:12

标签: javascript jquery html attributes href

我必须在其后面分配许多html href属性(标记)各自ID的值。 使用我的代码,我只得到一个唯一的值(第一个)。 非常感谢。 树里



$(".anchor").attr("href","#"+($(".anchor").closest("div").next("div").attr("id")));

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

<div>
    <a class="anchor">Get anchor 1</a>
</div>
<div id="link1">
    <p>A paragraph</p>
</div>
<div>
    <a class="anchor">Get anchor 2</a>
</div>
<div id="link2">
    <p>Another paragraph</p>
</div>
&#13;
&#13;
&#13;

4 个答案:

答案 0 :(得分:0)

Jquery .attr()在第二个参数中有函数,迭代所选元素并更改其属性。也可以使用.parent()代替.closest("div")

&#13;
&#13;
$(".anchor").attr("href", function(){
    return "#"+$(this).parent().next("div").attr("id");
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div>
    <a class="anchor">Get anchor 1</a>
</div>
<div id="link1">
    <p>A paragraph</p>
</div>
<div>
    <a class="anchor">Get anchor 2</a>
</div>
<div id="link2">
    <p>Another paragraph</p>
</div>
&#13;
&#13;
&#13;

答案 1 :(得分:0)

遍历所有带有类锚的标记循环,并使用$(this).parent("div").next("div").attr("id"))选择器获取标记的链接。

请查看下面的代码段。

$(".anchor").each(function(){
  $(this).attr("href","#"+($(this).parent("div").next("div").attr("id")));
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

<div><a class="anchor">Get anchor 1</a>
</div>
<div id="link1">
<p>A paragraph</p>
</div>

<div><a class="anchor">Get anchor 2</a>
</div>
<div id="link2">
<p>Another paragraph</p>
</div>

答案 2 :(得分:0)

您需要所选元素的实例。可以使用attr(attrName, function)来执行此操作

$(".anchor").attr("href",function(){
    return '#' + $(this).closest("div").next("div").attr("id");
});

答案 3 :(得分:0)

使用jQuery each或任何类似forwhile等的循环来迭代所有.anchor元素。