我有这段代码,它允许我通过点击来改变图像。
$('img').click(function(){
var src = this.src;
this.src = src.indexOf('_b.jpg') == -1 ? src.replace('.jpg','_b.jpg') : src.replace('_b.jpg','.jpg');
});
我更愿意点击另一个元素仍然可以更改图像。当我更改$('myelement')
中的部分时,我需要确保部件var src = this.src;
引用图像。
我需要更改this
?
答案 0 :(得分:0)
假设您的HTML中只有一个 img
标记:
$('myelement').click(function(){
var src = $('img').attr('src');
var newSrc = src.indexOf('_b.jpg') == -1 ? src.replace('.jpg','_b.jpg') : src.replace('_b.jpg','.jpg');
$('img').attr('src', newSrc);
});
但通常情况下,最好选择更具体的选择器,例如id
或某些独特的class
属性,因为您可能需要在文档中添加更多图片 - 然后$('img')
将选择一个数组所有图像。
答案 1 :(得分:0)
在javascript this
中引用当前对象,换句话说 contex 。通常的做法是将上下文存储到变量中,这样当上下文发生变化时,可以通过dom事件说明,你仍然可以访问它。
// stores context into that variable
var that = this;
但显然你的问题与this
无关。如果您需要更改其他元素的图像属性,则需要选择img标记并对其进行操作。
$('.another-element').click(function(){
var newSrc = 'Here goes the new scr attribute';
$('img').attr('src',newScr);
});
您可以使用id或class进行更精确的选择。