我有一些图像(在其他地方生成),我想使用jQuery操作和增强。
我有一个脚本执行我需要的一切,除了个别操作;我的脚本对所有元素执行,而不是单独执行。我错过了什么?
这就是我所拥有的:
此格式的多张图片:
<p>
<a href="">
<img src="" />
</a>
</p>
<p>
<a href="">
<img src="" />
</a>
</p>
jQuery的:
$('p').each(function(){
//grab img's SRC
var imgLinkMerge = $('p img').attr('src');
//find the a tag, change HREF for imgLinkMerge value
$(this).find('a').attr('href', imgLinkMerge).each(function(){
//set css BG IMG
$(this).css('background-image', 'url(' + imgLinkMerge + ')');
});
});
答案 0 :(得分:4)
使用$('p img')
,您将在页面上的每个img
内选择所有p
。您希望关注p
循环中的此 each()
。
改变这个:
var imgLinkMerge = $('p img').attr('src');
到此:
var imgLinkMerge = $(this).find('img').attr('src');
答案 1 :(得分:2)
$('p').each(function(){
//grab img's SRC
var imgLinkMerge = $(this).find('img').attr('src');
//find the a tag, change HREF for imgLinkMerge value
$(this).find('a').attr('href', imgLinkMerge).each(function(){
//set css BG IMG
$(this).css('background-image', 'url(' + imgLinkMerge + ')');
});
});
答案 2 :(得分:1)
这种变化
var imgLinkMerge = $('p img').attr('src');
到
var imgLinkMerge = $('img',$(this)).attr('src');
这将使用当前上下文即当前img
p