2016-11-09 5 views
-1

私はこのコードをクリックして画像をクリックして変更できます。jqueryで要素 "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;が画像を参照していることを確認する必要があります。

thisを変更するにはどうすればよいですか?

$('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属性のように、より具体的なセレクタで選択すると良いでしょう:あなたは、あなたのHTML内一つだけimgタグを持っていると仮定すると

+1

お客様の状況を確認できるように、HMTLコードを含めてください。私。あなたがクリックしている要素の子要素の画像ですか?兄弟ですか?どちらも? – showdev

+0

関数を作成してそのコンテキストをイメージにバインドするか、イメージをイベントデータとして渡すか、jqueryセレクタ(またはdom apiメソッド)を使用してイメージを選択することができます。 –

答えて

0

ドキュメント - 次に$('img')はすべてのイメージの配列を選択します。ジャバスクリプトthis

0

は言い換えるコンテックスに、現在のオブジェクトを指します。一般的なプラクティスは、コンテクストが変わったときに、ドームイベントによってそれに到達できるように、コンテクストを変数に格納することです。

// 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を使用できます。

関連する問題