Javascript “如何更改元素”;这";在jQuery中?
我有这段代码,它允许我通过点击来更改图像Javascript “如何更改元素”;这";在jQuery中?,javascript,jquery,html,this,Javascript,Jquery,Html,This,我有这段代码,它允许我通过点击来更改图像 $('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.
$('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代码>指的是图像
如果HTML中只有一个![]()
标记,我需要更改这个?:
$('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')
将选择所有图像的数组。在javascript中,此指的是当前对象,换句话说是contex。一般做法是将上下文存储到变量中,这样当上下文发生变化时(比如dom事件),您仍然可以访问它
// stores context into that variable
var that = this;
但显然你的问题与这件事无关。如果需要从其他元素更改图像属性,则需要选择img标记并对其执行操作
$('.another-element').click(function(){
var newSrc = 'Here goes the new scr attribute';
$('img').attr('src',newScr);
});
您可以使用id或类进行更精确的选择 请包含您的HMTL代码,以便我们可以查看您的上下文。也就是说,图像是否是您正在单击的元素的子元素?兄弟姐妹?两者都不是?您可以创建一个函数,然后将其上下文绑定到映像,或者将映像作为事件数据传入,或者使用jquery选择器(或dom api方法)选择映像。这是不是==$(这)?