jQuery从列表中获取img源属性并推送到数组中

时间:2010-03-01 10:08:07

标签: jquery arrays loops attributes push

我有这个缩略图列表,并希望将图像路径(源)推送到数组中:tn_array

<ul id="thumbnails">
    <li><img src="somepath/tn/004.jpg" alt="fourth caption" /></a></li>
    <li><img src="somepath/tn/005.jpg" alt="fifth caption" /></a></li>
    <li><img src="somepath/tn/006.jpg" alt="sixth caption" /></a></li>
</ul>

2 个答案:

答案 0 :(得分:48)

您可以使用map()更直接地创建src属性数组:

var tn_array = $("#thumbnails img").map(function() {
  return $(this).attr("src");
});

编辑: tn_array此处是一个对象,而不是严格的Javascript数组,但它将充当数组。例如,这是合法代码:

for (int i=0; i<tn_array.length; i++) {
  alert(tn_array[i]);
}

但是你可以调用get(),这将使它成为一个严格的数组:

var tn_array = $("#thumbnails img").map(function() {
  return $(this).attr("src");
}).get();

你怎么说出差异?拨打:

alert(obj.constructor.toString());

第一个版本将是:

function Object() { [native code] }

第二个:

function Array() { [native code] }

答案 1 :(得分:5)

您可以遍历img元素:

var tn_array = Array();

$('#thumbnails img').each(function() {
    tn_array.push($(this).attr('src'));
});