我做了一个小提琴。 http://jsfiddle.net/Zfaf6/
我正在体验数组,但似乎只输出第一个对象。
请任何建议,谢谢。
我的jquery
$("a.download-all").on('click', function () {
var downloads = $('a[data-download]').attr('data-download');
// This is the example output of the data in the variable...
$('#varObj').html(downloads);
});
我的剧本
<div id="images">
<a href="#" data-download="http://image.com/1.jpg"><img src="images/x.gif" alt=""/></a>
<a href="#" data-download="http://image.com/2.jpg"><img src="images/x.gif" alt="" /></a>
<a href="#" data-download="http://image.com/3.jpg"><img src="images/x.gif" alt=""/></a>
<a href="#" data-download="http://image.com/4.jpg"><img src="images/x.gif" alt="" /></a>
<a href="#" data-download="http://image.com/5.jpg"><img src="images/x.gif" alt=""/></a>
<a href="#" data-download="http://image.com/6.jpg"><img src="images/x.gif" alt="" /></a>
<div>
<p><a href="#" class="download-all">Download all images</a></p>
<p id="varObj"></p>
答案 0 :(得分:5)
jQuery的attr()
将作为“getter”(and per the docs)返回匹配的 first 元素的值;这就是为什么你只看到一个。
$("a.download-all").on('click', function () {
var downloads = $('a[data-download]').map(function () {
return $(this).attr('data-download');
});
// This is the example output of the data in the variable...
$('#varObj').html(downloads.get().join(' '));
});
答案 1 :(得分:1)
的 LIVE DEMO 强>
var downloads = [] ;
$("a.download-all").on('click', function () {
$('a[data-download]').each(function(){
downloads.push( $(this).attr('data-download') );
});
$('#varObj').html(downloads);
});
答案 2 :(得分:1)
调用set的attr()只会返回第一个attr()。另外,请使用data()
,因为它更容易阅读。
因此,代码只创建一个空数组,然后使用each
我们将每个项的download
值推送到数组中。其余代码是相同的。
$("a.download-all").on('click', function ()
{
var downloads = [];
$('a[data-download]').each(function()
{
downloads.push( $(this).data('download') );
});
// This is the example output of the data in the variable...
$('#varObj').html(downloads);
});
答案 3 :(得分:1)
var downloads = $('a[data-download]').map(function(){
return $(this).data('download');
});
$("#varObj").html(downloads.join("-"));