Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/388.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript “如何更改元素”;这";在jQuery中?_Javascript_Jquery_Html_This - Fatal编程技术网

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方法)选择映像。这是不是==$(这)?