我需要创建一个函数,从一个链接获取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')。每个(函数(){
var linkHref= $(this).attr('href');
$('a.secondlink').attr('href', linkHref);
});
如何将其一次性应用于每个
答案 0 :(得分:2)
您的问题是$('a.secondlink')
抓取了网页上的所有链接。只是因为它在每个循环中并不意味着它的范围是任何东西。
只需将$('a.secondlink').attr('href', linkHref)
更改为$(this).siblings('a.secondlink').attr('href', linkHref);
答案 1 :(得分:1)
我不认为这是编写插件的好地方。您应该在.each() loop
。
$('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;
});