我需要将图像src放入变量中,但我使用.find()来引用当前选定的类图像。我的代码是这样的。
var imagesrc = $(this).find(".shape img").attr("src");
alert(imagesrc);
它返回一个未定义的。我哪里错了?
答案 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;
使用形状类
获取第一个元素的第一个图像的来源