2014-03-04 55 views
0

對於jQuery/Javascript還是相當新穎的,我正在努力一點。在多個屬性中調用

我創建了一個名爲catno的屬性,我已將它分配給多個鏈接。然後,我希望將banner-1中的所有實例調用到由逗號分隔的另一個鏈接中。即

<a href="1290311655,1337929192,1374407572,1337930498,1353983749," class="buy-outfit">New Link</a> 

我只是在實現這一點掙扎。我現在的代碼只返回第一個catno。

任何幫助將是偉大的!

JSFIDDLE

<div id="banner-1> 
<a href="" catno="1290311655" class="add-catno" alt="" title=""></a> 
<a href="" catno="1337929192" class="add-catno" alt="" title=""></a> 
<a href="" catno="1374407572" class="add-catno" alt="" title=""></a> 
<a href="" catno="1337930498" class="add-catno" alt="" title=""></a> 
<a href="" catno="1353983749" class="add-catno" alt="" title=""></a> 

<a href="" class="new-link">New Link</a> 
</div> 

$sd('.buy-outfit').attr('href', function() { 
return $sd("#banner-1 .add-catno").attr('catno') + ','; 
}); 

回答

1

Fiddle Demo

var arr_catno = $("#banner-1 a").map(function() { //create array using .map 
    return $(this).attr('catno'); // add element attribute catno to array 
}).get().join(); //use .join() to get comma separated string of array 
$('.new-link').attr('href', arr_catno); //assign it to href 

.map()


OP的評論後更新

Fiddle Demo

$('[id^=banner-] .new-link').attr('href', function() { 
    return $(this).parent().find('a').map(function() { 
     return $(this).attr('catno'); 
    }).get().join(); 
}); 

Attribute Starts With Selector [name^="value"]

.parent()

.find()

[id^=banner-] - >選擇所有ID元素與banner-

+1

謝謝!!如果我想繼續創建#banner-2/3/4/5。如何在不添加代碼的情況下在x次的時間內執行此操作?在這裏擺弄它 - http://jsfiddle.net/A7LWf/2/ 謝謝:) – Nick

+1

@Nick檢查更新的答案。 –

+1

太棒了!謝謝:) – Nick

0

開始使用$.map生產他們將一系列的卡諾斯和他們join成一個字符串。在本例中

$('.new-link').attr('href', function() { 
    return $.map($(".add-catno"), function (el) { 
    return $(el).data('catno'); 
    }).join(','); 
}); 

請注意,我已經改變了catnos屬性data屬性。使用data被認爲是您想要將任意數據添加到HTML時的良好實踐。

Fiddle