调用多个属性

时间:2014-03-04 16:57:41

标签: javascript jquery

仍然是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') + ',';
});

2 个答案:

答案 0 :(得分: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-] - &gt;选择ID为banner-

的所有元素

答案 1 :(得分:0)

使用$.map生成一系列catnos,并将它们join生成一个字符串。

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

在示例中请注意,我已将catnos属性更改为data属性。当您想要向HTML添加任意数据时,使用data被认为是一种很好的做法。

Fiddle