我有一个片段,我试图与之合作;我有一些产品可以抓住源代码,将其拆分为"?"并将其放入一个数组,然后替换" img.item-img"带有新链接的src。
但是,我没有使用循环或$(' this')来彼此区分它们。所以,如果我有三个项目,他们都会获得第一个src代码。
<script>
$( document ).ready(function() {
$( "img.item-img" ).each(function() {
str = $("img.item-img").attr('src');
arr = str.split("?");
var new_link = arr[0];
$("img.item-img").attr('src', new_link);
});
</script>
答案 0 :(得分:0)
正如您已正确识别的那样,您需要使用this
关键字作为$()
函数的单个参数:
$('img.item-img').each(function() {
var str = $(this).attr('src'),
arr = str.split("?");
$(this).attr('src', arr[0]);
});
或者,您可以在attr()
函数中使用匿名函数调用:
$('img.item-img').attr('src', function() {
var arr = $(this).attr('src').split('?');
return arr[0];
});
jsFiddle Demo(匿名函数返回)
答案 1 :(得分:0)
在每个回调函数中,您需要使用$(this)来引用当前正在循环的元素。
<script>
$( document ).ready(function() {
$( "img.item-img" ).each(function() {
str = $(this).attr('src');
arr = str.split("?");
var new_link = arr[0];
$(this).attr('src', new_link);
});
</script>