Javascript jQuery-循环通过div';s从一个链接中提取url,然后将其添加到另一个链接

Javascript jQuery-循环通过div';s从一个链接中提取url,然后将其添加到另一个链接,javascript,jquery,url,loops,Javascript,Jquery,Url,Loops,我需要创建一个函数,从一个链接获取url,并将其应用于同一div中的另一个链接。我可以让它循环,但它总是将最后一个变量分配给所有链接 代码如下: $.fn.getLink = function() { $('a.firstlink').each(function(){ var linkHref= $(this).attr('href'); ('a.secondlink').attr('href', linkHref) }); }

我需要创建一个函数,从一个链接获取url,并将其应用于同一div中的另一个链接。我可以让它循环,但它总是将最后一个变量分配给所有链接

代码如下:

$.fn.getLink = function() { 

    $('a.firstlink').each(function(){

         var linkHref= $(this).attr('href');

         ('a.secondlink').attr('href', linkHref)

    });

}

$('div.containing-links').each(function(){

    $(this).getLink();

});
谢谢你的帮助

感谢您的快速回答,为了让它简单一点,下面是正确添加链接的代码,但对所有链接重复最后一个href变量

$('a.firstlink')。每个(函数(){


如何一次将此应用于每个插件?

我认为这不是编写插件的好地方。您应该在
.each()循环中直接执行此操作

$('div.containing-links').each(function(){
    var $self    = $(this),
        $first   = $self.find('a.firstlink'),
        $second  = $self.find('a.secondlink');

    if( $first.length && $second.length )
        $second[0].href = $first[0].href;
});

您的问题是,
$('a.secondlink')
获取页面上的所有链接。仅仅因为它位于每个循环中并不意味着它的作用域是任何内容


只需将
$('a.secondlink').attr('href',linkHref)
更改为类似于
$(this).兄弟姐妹('a.secondlink').attr('href',linkHref)

你能发布有问题的HTML吗。很难达到你的目标。这对我来说不起作用,但我认为你有一个正确的想法,那就是将href应用于所有链接。当我发出警报时(linkHref);它成功地通过了每一个。忽略了这一个,这是正确的答案,尽管有更好的方法在特定上下文中进行搜索
$('a.firstLink',this)
您可以将元素搜索的上下文作为jquery selector的第二个参数传递。@Tom,这是一个很好的功能,但因为他是通过链接而不是容器进行循环的,所以不一定可行。@areid我的示例可能不起作用,因为我不知道您的DOM结构,而且链接不是直接的同级链接。概念保持不变,您只需要找出正确的遍历方法来遍历所需的链接(而不是使用
.sibles()
方法。)@Stephen这是可行的,因为他正在替换由div容器
div.containing-links包装的链接,并在该容器上调用.each()方法来替换每个包装中的这些链接-检查下面我的答案,我已经将你的答案与我相信他所针对的结构上的上下文联系起来。
$('div.containing-links').each(function(){
    var $self    = $(this),
        $first   = $self.find('a.firstlink'),
        $second  = $self.find('a.secondlink');

    if( $first.length && $second.length )
        $second[0].href = $first[0].href;
});