使用.find()函数获取图像src

时间:2014-07-28 09:58:30

标签: javascript jquery image

我需要将图像src放入变量中,但我使用.find()来引用当前选定的类图像。我的代码是这样的。

    var imagesrc = $(this).find(".shape img").attr("src");
    alert(imagesrc);

它返回一个未定义的。我哪里错了?

3 个答案:

答案 0 :(得分:1)

因为documentation说“将返回一个jQuery集合”

您应该尝试更改代码:

var imagesrc = $(this).find(".shape img").first().attr("src");
alert(imagesrc);`

答案 1 :(得分:1)

首先,找出变量的范围。 那么你可能应该看看.find() jQuery API

请注意 find()会返回匹配元素的数组,而不是单个结果。

P.S。您通过类​​属性在DOM中搜索单个元素的每种类型都不能保证它是单个元素。出于此类目的使用ID属性。

答案 2 :(得分:0)

var imageSRCS = (function()
{
    var images = document.getElementsByTagName('img'); //get all image elements in document
    var SRCS = Array(images.length); //create a temporary array for our sources
    for(var i = 0; i<images.length; i++)
        SRCS[i] = images[i].src; //loop through our images and store the source in the array
    return SRCS; //return the temporary array to the imageSRCS variable 
}());

这将输出一个简单的字符串数组,字符串是页面上的每个图像源。用

交换第三行
var images = document.getElementsByClassName('shape')[0].getElementsByTagName('img');

仅使用形状类获取第一个元素内的图像,我相信这是您最初尝试做的。

记住输出是一个数组,所以如果你只想要一个src,也许可以试试。

var imageSRC = document.getElementsByClassName('shape')[0].getElementsByTagName('img')[0].src; 

使用形状类

获取第一个元素的第一个图像的来源