0

这返回我对象对象。如何制作一个src数组?

$('#mainContainerPortfolio #activateBox').click(function(){

    var clickedAlt = $(this).children('img').attr('alt');
    var imgs = $('#mainContainerPortfolio #projectImg[alt="'+clickedAlt+'"]');
    imgs.src;
    var i = [];
    i.push(imgs);

    console.log(i);
});
4

3 回答 3

3

在您的代码中,imgs是 jQuery 对象,而不是 DOM 元素。因此,它没有.src属性。

如果您想要该.srcjQuery 对象中的图像属性,则需要执行以下操作之一:

var src = imgs.attr("src");

或者,从 jQuery 对象中获取第一个 DOM 元素:

var src = imgs[0].src

此外,您的代码中还有其他几个错误。如果您想将src所有被点击的元素的值累积到一个数组中,您可以执行以下操作:

$('#mainContainerPortfolio #activateBox').click(function(){

    var clickedAlt = $(this).children('img').attr('alt');
    var imgs = $('#mainContainerPortfolio #projectImg[alt="'+clickedAlt+'"]');
    var srcs = imgs.map(function(index, elem) {
        return(elem.src);
    }).get();

    console.log(srcs);
});

我认为您的选择器也存在问题,因为您只能拥有一个带有 an 的元素,id="projectImg"因此没有理由将属性 [alt="'+clickedAlt+'"] 与它一起使用。

同样,'#mainContainerPortfolio #activateBox'可以只更改为,'#activateBox'因为只能有一个 id 为 的对象activateBox

于 2012-08-12T08:45:38.723 回答
1

因为imgs 一个对象。这一行:

imgs.src;

什么都不做。它只是返回那个。没有对返回的值做任何事情。将其更改为:

imgs = imgs.attr("src");

它应该可以正常工作

于 2012-08-12T08:45:42.970 回答
1

您可以使用 .map 来获取数组。

i = imgs.map(function() {
  return $(this).attr('src');
});
于 2012-08-12T08:49:00.000 回答