2011-05-05 5 views
1

をクリックした私のHTMLはそうのようなものです:表示IDが

<img src="/path" id="img_1"> 
    <img src="/path" id="img_2"> 
    <img src="/path" id="img_3"> 
    <img src="/path" id="img_4"> 

は私がクリックされたボタンのIDを警告します。

どうすれば実現できますか?

答えて

5
$('img').click(function(){ 
    alert(this.id); 
}); //try that :-) 

DEMO

以上の 'ダイナミック・バージョン'(あなたは、Ajaxや他のいくつかの実装で画像を追加する場合):

jQueryを使って
$('img').live('click', function(){ 
    alert(this.id); 
}); //try that :-) 
+0

はい、問題はすべての画像をループするということです。私はig = mgのIDをクリックしてください。 – Autolycus

+0

@Autolucus、すべての画像をループしません。それはクリックハンドラをそれらのすべてに接続するだけです。 jQueryの仕組みを理解できませんか? – Neal

+0

@Autolycusいいえ、「すべての画像をループしません」というのは、onclickイベントをすべての画像にバインドし、クリックされた画像に対してその機能を実行することです。 – Chad

4
$("img").click(function() { 
    alert($(this).attr("id")); 
}); 
+0

あなたが行っている場合も '警告(this.id)' – Neal

+0

も$(この).prop新しいjQueryのスペックを持つ( 'ID') ''行う方が良いかもしれませんを行うことができますそのようにするには – Neal

3

$('img').click(function() { 
    alert($(this).attr('id')); 
}); 

またはプレーンJS:

function handleClick(sender) { 
    alert(sender.id); 
} 

<img src="/path" id="img_1" onclick="handleClick(this);" /> 
<img src="/path" id="img_2" onclick="handleClick(this);" /> 
<img src="/path" id="img_3" onclick="handleClick(this);" /> 
<img src="/path" id="img_4" onclick="handleClick(this);" /> 
+2

インラインjsを避けるようにしてください。なぜjQueryの例で 'this.id'をやってみませんか? – Neal

+0

@jballは私がすでに修正したタイプミスであり、あなたも同様にそれを行うことができる@Neal ofcourseは、ID – Chad

+0

@chadにアクセスするjQueryの方法を示していました.jQueryメソッドは 'this.id'、' $ ).attr( 'id') 'は、作成時に設定された属性を取得するだけで、' this.id'はidプロパティーを取得します – Neal

関連する問題