如何遍历hrefs并为每个帖子添加新元素的href

时间:2017-03-17 17:55:21

标签: javascript jquery html

当前循环只是将存储的第一个href(r.e。,http://something.com/article-1)添加到具有类“copy-item-link”的所有href中。我想从相应的列表项中复制唯一的URL,并添加到包含“copy-item-class”的每个元素。这是我在运行任何js之前到目前为止所拥有的。

<ul>
    <li class="item">
        <p class="item-link">
            <a href="http://something.com/article-1">Article 1</a>
        </p>
        <p></p>
        <a class="copy-item-link">Read more</a>
    </li>
    <li class="item">
        <p class="item-link">
            <a href="http://something.com/article-2">Article 2</a>
        </p>
        <p></p>
        <a class="copy-item-link">Read more</a>
    </li>
    <li class="item">
        <p class="item-link">
            <a href="http://something.com/article-3">Article 3</a>
        </p>
        <p></p>
        <a class="copy-item-link">Read more</a>
    </li>
</ul>

完全接受任何建议。提前致谢。可以在下面使用一些帮助......

var $readMore = (".copy-item-link");
var $item = (".item");

$($item).each(function() {
    var $itemLink = (".item-link a");

    $(this).each(function() {
        var $addLink = $($itemLink).attr('href');
        $($readMore).attr('href', $addLink);
    });

});

2 个答案:

答案 0 :(得分:2)

您在每次迭代中引用每个.item-link a,然后同时更新每个.copy-item-link

您应该只搜索当前元素:

$('.item').each(function() {
    var url = $(this).find(".item-link a").attr('href');
    $(this).find('.copy-item-link').attr('href',url);
});

答案 1 :(得分:0)

$('.item').each(function(){
   var item = $(this),
       url = item.find('.item-link a').attr('href');

   item.find('.copy-item-link').attr('href', url);
});