最初に、数字で始まるid
の属性はHTML4では構文的に違法であることに注意してください。 id="10"
を使用している場合は、HTML5のdoctype(<!DOCTYPE html>
)を使用していることを確認してください。
あなたの実際のコードを見ていないと、あなたがしていたことがうまくいかなかった理由は言うまでもありません。恐らくそれはあなたが上位の要素(身体のような)にイベントを登録していて、this.id
がその上位の要素のid
であり、クリックした要素ではなかったからでしょう。
この場合、イベントのtarget
プロパティを使用して、クリックした内容を探したいとします。たとえば、次のアクションにみる
$(document.body).click(function(evt){
var clicked = evt.target;
var currentID = clicked.id || "No ID!";
$(clicked).html(currentID);
})
:http://jsfiddle.net/Gra2P/1/
:
$('div').click(function(evt){
var currentID = this.id || "No ID!";
$(this).html(currentID);
})
行動にみる:http://jsfiddle.net/Gra2P/
あなたの代わりに特定の要素に登録された場合は、this.id
仕事はありません
これは、以下の理由から、理想的ではありません。
- それは多くのイベントハンドラの登録の代わりに、1を行い、
- このコードが実行された後に、追加のdiv要素が文書に追加されている場合、それらは処理されません。 jQueryの1.7の下で
、あなたは上のイベントをキャッチし、それらにthis
セットを持つようにしたい要素の種類のセレクタで、親要素上の単一のイベントハンドラを作成するために、.on
メソッドを使用します。コードでは:
$(document.body).on('click','div',function(evt){
var currentID = this.id || "No ID!";
$(this).html(currentID);
})
が行動にみる:http://jsfiddle.net/Gra2P/2/
を使用することができませんあなたを助けようとしている人に非常に役立ちます。あなたはあなたが持っているものとあなたが望むもののかなり良い記述を含んでいます。しかし、実際の作業用テストケース(http://jsfiddle.net)を含めることと、代わりに「何が起こったのか」と言うのではなく、「動作しません。間違いましたか?あなたは間違った結果を得ましたか?あなたのコンピュータは火をつけましたか? – Phrogz