javascript - 为什么jquery在attr ('src'中返回对象)

标签 javascript jquery

这将返回我对象对象。如何制作 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);
});

最佳答案

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

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

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);
});
<小时/>

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

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

关于javascript - 为什么jquery在attr ('src'中返回对象),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11920904/

相关文章:

javascript - HTML 元素向下滚动直到达到特定值

jquery - 上传表单数据: Why jquery won't send parameters via post?

javascript - 浏览器如何发现所有网页上的用户名和密码?

javascript - 数组映射和过滤 ReactJs

javascript - 使用条形码阅读器防止在 Chrome 中打开下载窗口

javascript - 根据 X 和 Y 坐标确定事件三 Angular 形

javascript - 页面缩放时可使用哪些事件

javascript - 用JS控制GIF动画。播放、停止、倒放

Jquery - 确定点击了哪个链接

javascript - 使用 jquery/javascript 的充电选项。 'Math' 逻辑